在PyQt5中有时需要弹窗来提示用户的操作哪里出了问题,而这里就需要用到QMessageBox类。
QMseeageBox类继承于QDialog类,用于显示提醒、警告、错误等信息,或进行确认选择,由几个类函数实现这些功能。
QMessageBox的类函数:
方法 | 描述 |
warning | 警告信息提示对话框 QMessageBox.warning(self,'标题','警告框消息正文',QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes) |
information | 信息提示对话框 QMessageBox.information(self,'标题','消息对话框正文',QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes) |
question | 询问并获取是否确认的对话框 QMessageBox.question(self,'标题','提问框消息正文',QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes) |
critical | 出错消息提示对话框 QMessageBox.critical(self,'标题','严重错误对话框消息正文',QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes) |
about | 设置自定义信息的关于对话框 QMessageBox.about(self,'标题','关于对话框' ) |
aboutQt | 关于Qt的对话框 |
对于warning()、information()、critical()和about()几个对话框,对话框上一般只有一个OK按钮,无需关注对话框的返回值,所以使用默认的按钮设置即可。
def warning(self):
title = 'warning消息框'
info = "文件已经被修改"
QtWidgets.QMessageBox.warning(self,title,info)
不过一下方法简单使用应该更加简单
def messageDialog(self):
#核心功能代码
msg_box = QtWidgets.QMessageBox(QtWidgets.QMessageBox.Information, '警告', 'PLC连接出现异常') #Information可替换为Warning、Critical其他提示框类型
msg_box.setWindowIcon(QtGui.QIcon('logo.ico')) #加载图标
msg_box.exec_()
QMessageBox 按钮含义:
类型 | 描述 |
QMessageBox.Yes | 同意操作 |
QMessageBox.No | 取消操作 |
QMessageBox.Ok | 同意操作 |
QMessage.Cancel | 取消操作 |
QMessage.Abort | 终止操作 |
QMessage.Retry | 重试操作 |
QMessage.Ignore | 忽略操作 |
需要注意的是QMessageBox.question()是在对话框可以显示多个按钮的方法,例如同时显示OK、NO、Cancle,或者OK、Cancle。其返回结果是一个QMessageBox.StandardButton枚举类型变量,表示哪个按钮被单机了。
def question_msg(self):
defaultBtn = QMessageBox.NoButton
reply1 = QMessageBox.question(self, "标题", "提问框消息正文", QMessageBox.Yes | QMessageBox.No |QMessageBox.Cancel,defaultBtn)