071.PyQt5_QMessageBox_消息提示对话框

QMessageBox 消息提示对话框

  • 描述
    • 用于通知用户或请求用户的提问和接收应答一个模态对话框
    • 对话框的构成
      • 071.PyQt5_QMessageBox_消息提示对话框_第1张图片

    • 图标可以使用标准图标
      • 071.PyQt5_QMessageBox_消息提示对话框_第2张图片

  • 继承自:QDialog
  • 功能作用
    • 构造函数
      # 创建对象的同时设置父对象
      QMessageBox(parent: QWidget = None)
      
      # 创建对象的同时设置图标、窗口标题、主标题、多个按钮和父对象、窗口标识
      QMessageBox(QMessageBox.Icon, str, str, buttons: Union[QMessageBox.StandardButtons, QMessageBox.StandardButton] = QMessageBox.NoButton, parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.Dialog|Qt.MSWindowsFixedSizeDialogHint)
      * 主标题文本是一个富文本,可以通过HTML标签对文本格式进行调整,例如:

      主标题

    • 模态修改(模态修改必须在控件弹出之前设置好)
      setModal(bool)                              # 设置对话框是否为模态
      setWindowModality(Qt.NonModal)              # 设置窗口为非模态
      
    • 弹出
      • 该对话框默认打开是窗口级别的模态对话框
      exec()                                      # 以窗口级别的模态对话框弹出
      open()                                      # 以应用程序级别的模态对话框弹出
      
      # show() 方法弹出的对话框也被重写为窗口级别的模态对话框了
      
    • 设置窗口标题
      setWindowTitle(str)                         # 设置对话框标题
      
    • 图标
      setIcon(QMessageBox.Icon)                   # 设置标准图标
      icon() ->QMessageBox.Icon                   # 获取图标,返回表中图标对象
      # 参数:QMessageBox.Icon    
      #       QMessageBox.Noicon                  # 消息框没有任何图标
      #       QMessageBox.Question                # 一个图标,表示该消息正在提问
      #       QMessageBox.Information             # 一个图标,表示该消息没有任何异常
      #       QMessageBox.Warning                 # 一个图标,表示改消息是一个警告
      #       QMessageBox.Critical                # 一个图标,表示该消息代表一个严重问题、
      
      setIconPixmap(QPixmap)                      # 设置自定义图标
      iconPixmap()->QPixmap                       # 获取图标,返回自定义图标对象
      
    • 设置内容主要标题
      setText(str)                                # 设置主要标题,接受富文本
      setTextFormat(self, Qt.TextFormat)          # 设置文本格式
      textFormat()                                # 获取文本格式
      # 参数:Qt.TextFormat   
      #       Qt.PlainText                        # 普通文本
      #       Qt.RichText                         # 富文本
      #       Qt.AutoText                         # 自动识别文本格式
      
    • 设置提示文本
      setInformativeText(str)                     # 设置提示文本,接受富文本
      informativeText()-> str                    # 获取提示文本内容
      
    • 设置详细文本
      • 设置了详细文本内容后,会自动添加一个展开/隐藏详细文本的按钮
      setDetailedText(self, str)                  # 设置详细文本,不接受富文本
      detailedText()->str                         # 获取详细文本内容
      
    • 设置复选框
      setCheckBox(self, QCheckBox)                # 设置复选框
      checkBox(self)->QCheckBox                   # 获取复选框,返回QCheckBox对象
      
    • 设置标准按钮
      setStandardButtons(self, Uion[QMessageBox.StandardButtons,QMessageBox.StandardButton])      # 设置标准按钮
      standardButton(self,QAbstractButton)->QMessageBox.StandardButton                            # 获取标准按钮
      standardButtons(self)->QMessageBox.StandardButtons                                          # 获取所有标准按钮
      # 参数:QMessageBox.StandardButton
      #       QMessageBox.Ok                      # 使用AcceptRole定义的“确定”按钮。
      #       QMessageBox.Open                    # 使用AcceptRole定义的“打开”按钮。
      #       QMessageBox.Save                    # 使用AcceptRole定义的“保存”按钮。
      #       QMessageBox.Cancel                  # 使用RejectRole定义的“取消”按钮。
      #       QMessageBox.Close                   # 使用RejectRole定义的“关闭”按钮。
      #       QMessageBox.Discard                 #  “丢弃”或“不保存”按钮,具体取决于使用DestructiveRole定义的平台。
      #       QMessageBox.Apply                   # 使用ApplyRole定义的“应用”按钮。
      #       QMessageBox.Reset                   # 使用ResetRole定义的“重置”按钮。
      #       QMessageBox.RestoreDefaults         # 使用ResetRole定义的“恢复默认值”按钮。
      #       QMessageBox.Help                    # 使用HelpRole定义的“帮助”按钮。
      #       QMessageBox.SaveAll                 # 使用AcceptRole定义的“全部保存”按钮。
      #       QMessageBox.Yes                     # 使用YesRole定义的“是”按钮。
      #       QMessageBox.YesToAll                # 使用YesRole定义的“Yes to All”按钮。
      #       QMessageBox.No                      # 使用NoRole定义的“否”按钮。
      #       QMessageBox.NoToAll                 # 使用NoRole定义的“No to All”按钮。
      #       QMessageBox.Abort                   # 使用RejectRole定义的“Abort”按钮。
      #       QMessageBox.Retry                   # 使用AcceptRole定义的“重试”按钮。
      #       QMessageBox.Ignore                  # 使用AcceptRole定义的“忽略”按钮。
      #       QMessageBox.NoButton                # 无效按钮。
      
      • AcceptRole:表示点击按钮可以接受对话框
      • RejectRole:表示单击该按钮将导致对话框被拒绝
      • DestructiveRole:表示单击该按钮将导致破坏性更改(例如“丢弃更改”)并关闭对话框
    • 添加移除按钮
      addButton(self, QAbstractButton, QMessageBox.ButtonRole)            # 添加一个自定义按钮,并设置其角色(确定其是确定还是取消或者其他按钮)
      addButton(self, str, QMessageBox.ButtonRole) -> QPushButton         # 输入按钮显示文本添加按钮并设置其角色,返回该按钮对象
      addButton(self, QMessageBox.StandardButton) -> QPushButton          # 添加一个标准按钮,返回该按钮对象
      removeButton(self, QAbstractButton)                                 # 移除指定按钮对象
      
      # 参数:QMessageBox.ButtonRole(角色)
      #       QMessageBox.InvalidRole                                     # 该按钮无效。
      #       QMessageBox.AcceptRole                                      # 单击该按钮将使对话框被接受(例如,确定)。
      #       QMessageBox.RejectRole                                      # 单击该按钮会导致拒绝对话框(例如取消)。
      #       QMessageBox.DestructiveRole                                 # 单击该按钮会导致破坏性更改(例如,对于Discarding  Changes)并关闭对话框。
      #       QMessageBox.ActionRole                                      # 单击该按钮将导致更改对话框中的元素。
      #       QMessageBox.HelpRole                                        # 可以单击该按钮以请求帮助。
      #       QMessageBox.YesRole                                         # 按钮是一个“是”的按钮。
      #       QMessageBox.NoRole                                          # 按钮是一个“无”按钮。
      #       QMessageBox.ApplyRole                                       # 该按钮应用当前更改。
      #       QMessageBox.ResetRole                                       # 该按钮将对话框的字段重置为默认值。
      
    • 获取按钮
      button(self, QMessageBox.StandardButton) -> QAbstractButton         # 通过QMessageBox枚举值获取一个标准按钮
      buttons(self) -> List[QAbstractButton]                              # 获取所有按钮,返回一个列表
      
    • 获取按钮的角色
      buttonRole(self, QAbstractButton) -> QMessageBox.ButtonRole
      # 参数:QMessageBox.ButtonRole(角色)
      #       QMessageBox.InvalidRole                                     # 该按钮无效。
      #       QMessageBox.AcceptRole                                      # 单击该按钮将使对话框被接受(例如,确定)。
      #       QMessageBox.RejectRole                                      # 单击该按钮会导致拒绝对话框(例如取消)。
      #       QMessageBox.DestructiveRole                                 # 单击该按钮会导致破坏性更改(例如,对于Discarding  Changes)并关闭对话框。
      #       QMessageBox.ActionRole                                      # 单击该按钮将导致更改对话框中的元素。
      #       QMessageBox.HelpRole                                        # 可以单击该按钮以请求帮助。
      #       QMessageBox.YesRole                                         # 按钮是一个“是”的按钮。
      #       QMessageBox.NoRole                                          # 按钮是一个“无”按钮。
      #       QMessageBox.ApplyRole                                       # 该按钮应用当前更改。
      #       QMessageBox.ResetRole                                       # 该按钮将对话框的字段重置为默认值。
      
    • 设置默认按钮
      setDefaultButton(self, QPushButton)                                 # 设置指定自定义按钮为默认选中按钮
      setDefaultButton(self, QMessageBox.StandardButton)                  # 设置指定标准按钮为默认选中按钮
      defaultButton(self) -> QPushButton                                  # 获取被设置为默认选中的按钮
      # 默认选中的按钮:获取光标的按钮,按下回车会发射该按钮的点击信号
      
    • 设置退出按钮
      • 按Esc激活的按钮
      setEscapeButton(self, QAbstractButton)                              # 设置指定按钮为退出按钮
      setEscapeButton(self, QMessageBox.StandardButton)                   # 设置指定标准按钮为退出按钮
      escapeButton(self)->QAbstractButton)                                # 获取退出按钮对象
      
    • 获取被点击的按钮
      clickedButton(self) -> QAbstractButton                              # 获取被点击的按钮,返回按钮对象
      
    • 文本交互
      • 控制的是主标题
      setTextInteractionFlags(Qt.TextInteractionFlag)
      textInteractionFlags()->Qt.TextInteractionFlag
      # 参数:Qt.TextInteractionFlag
      #       Qt.NoTextInteraction                    # 不可能与文本进行交互
      #       Qt.TextSelectableByMouse                # 可以使用鼠标选择文本并使用上下文菜单或标准...
      #       Qt.TextSelecttableByKeyboard            # 可以使用键盘上的光标键选择文本,显示文本
      #       Qt.LinksAccessibleByMouse               # 可以使用鼠标突出显示和激活连接
      #       Qt.LinksAccessibleByKeyboard            # 可以使用选项卡聚焦连接并使用enter激活
      #       Qt.TextEditable                         # 该文本内容完全可编辑
      #       Qt.TextEditorInteraction                # 文本编辑器的默认值(Qt.TextSelectableByMouse | Qt.TextSelectableByKeyboard)
      #       Qt.TextBrowserInteraction               # QTextBrowser的默认值(Qt.TextSelectableByMouse | Qt.LinksAccessibleByMouse)
      
    • 静态方法
      • 快速展示指定类型的消息提示对话框
      # 关于对话框
      about(QWidget, str, str)
      
       # 关于Qt的对话框
      aboutQt(QWidget, title:str='')
      
      # 错误消息提示对话框,返回用户点击的按钮
      critical(QWidget, str, str, buttons: Union[QMessageBox.StandardButtons, QMessageBox.StandardButton] = QMessageBox.Ok, defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) -> QMessageBox.StandardButton
      
      # 普通消息提示对话框,返回用户点击的按钮
      information(QWidget, str, str, buttons: Union[QMessageBox.StandardButtons, QMessageBox.StandardButton] = QMessageBox.Ok, defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) -> QMessageBox.StandardButton
      
      # 疑问消息提示对话框,返回用户点击的按钮
      question(QWidget, str, str, buttons: Union[QMessageBox.StandardButtons, QMessageBox.StandardButton] = QMessageBox.StandardButtons(QMessageBox.Yes|QMessageBox.No), defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) -> QMessageBox.StandardButton
      
      # 警告消息提示对话框,返回用户点击的按钮
      warning(QWidget, str, str, buttons: Union[QMessageBox.StandardButtons, QMessageBox.StandardButton] = QMessageBox.Ok, defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) -> QMessageBox.StandardButton
      
  • 可用信号
    buttonClicked(QAbstractButton button)                                           # 按钮被点击时发射该信号,传递被点击的按钮对象

你可能感兴趣的:(PyQt5,pyqt5,python,gui,python,pyqt,qt)