PyQt5 – QMessageBox
QMessageBox是一个常用的模态对话框,用于显示一些信息,并可选择要求用户通过点击其上的任何一个标准按钮进行响应。每个标准按钮都有一个预定义的标题、一个角色并返回一个预定义的十六进制数字。
与QMessageBox类相关的重要方法和枚举在下表中给出。
Sr.No. | 方法和描述 |
---|---|
1 | setIcon() 显示与信息的严重程度相对应的预定义图标 Question Information Warning Critical |
2 | setText() 设置要显示的主信息的文本。 |
3 | setInformativeText() 显示额外信息 |
4 | setDetailText() 对话框显示一个细节按钮。点击后会出现这段文字 |
5 | setTitle() 显示对话框的自定义标题。 |
6 | setStandardButtons() 要显示的标准按钮的列表。每个按钮都与QMessageBox.Ok 0x00000400 QMessageBox.Open 0x00002000 QMessageBox.Save 0x00000800 QMessageBox.Cancel 0x00400000 QMessageBox.Close 0x00200000 QMessageBox.Yes 0x00004000 QMessageBox.No 0x00010000 QMessageBox.Abort 0x00040000 QMessageBox.Retry 0x000800 QMessageBox.Ignore 0x00100000 |
7 | setDefaultButton() 将按钮设置为默认。如果按了回车键,它就会发出点击的信号 |
8 | setEscapeButton() 设置按钮,在按下转义键时被视为点击。 |
示例
在下面的例子中,点击顶层窗口上的按钮的信号,连接的函数显示消息框对话框。
msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setText("This is a message box")
msg.setInformativeText("This is additional information")
msg.setWindowTitle("MessageBox demo")
msg.setDetailedText("The details are as follows:")
setStandardButton()函数显示所需的按钮。
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
buttonClicked()信号被连接到一个槽函数,它可以识别信号源的标题。
msg.buttonClicked.connect(msgbtn)
该例子的完整代码如下 —
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
def window():
app = QApplication(sys.argv)
w = QWidget()
b = QPushButton(w)
b.setText("Show message!")
b.move(100,50)
b.clicked.connect(showdialog)
w.setWindowTitle("PyQt MessageBox demo")
w.show()
sys.exit(app.exec_())
def showdialog():
msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setText("This is a message box")
msg.setInformativeText("This is additional information")
msg.setWindowTitle("MessageBox demo")
msg.setDetailedText("The details are as follows:")
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
msg.buttonClicked.connect(msgbtn)
retval = msg.exec_()
def msgbtn(i):
print ("Button pressed is:",i.text())
if __name__ == '__main__':
window()
上述代码产生以下输出。当主窗口的按钮被点击时,消息框弹出 –
如果你点击MessageBox上的 “确定 “或 “取消 “按钮,会在控制台产生以下输出结果
Button pressed is: OK
Button pressed is: Cancel