描述
用于通知用户或请求用户的提问和接收应答一个模态对话框
对话框的构成
图标可以使用标准图标
继承自: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标签对文本格式进行调整,例如:<H2>主标题</H2>
模态修改(模态修改必须在控件弹出之前设置好)
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) # 按钮被点击时发射该信号,传递被点击的按钮对象
评论回复