- PyQt5 教程
- PyQt5 - 首页
- PyQt5 - 简介
- PyQt5 - 新特性
- PyQt5 - Hello World
- PyQt5 - 主要类
- PyQt5 - 使用Qt Designer
- PyQt5 - 信号与槽
- PyQt5 - 布局管理
- PyQt5 - 基本控件
- PyQt5 - QDialog 类
- PyQt5 - QMessageBox
- PyQt5 - 多文档界面
- PyQt5 - 拖放
- PyQt5 - 数据库处理
- PyQt5 - 绘图API
- PyQt5 - BrushStyle 常量
- PyQt5 - QClipboard
- PyQt5 - QPixmap 类
- PyQt5 有用资源
- PyQt5 - 快速指南
- PyQt5 - 有用资源
- PyQt5 - 讨论
PyQt5 - QMessageBox
QMessageBox 是一个常用的模态对话框,用于显示一些信息消息,并可以选择性地要求用户通过点击其上的任何一个标准按钮来响应。每个标准按钮都有一个预定义的标题、一个角色和一个预定义的十六进制数字。
与 QMessageBox 类相关的重要的方法和枚举在下面的表格中给出:
| 序号 | 方法及说明 |
|---|---|
| 1 |
setIcon() 显示与消息严重性相对应的预定义图标
|
| 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 0x00080000 QMessageBox.Ignore 0x00100000 |
| 7 |
setDefaultButton() 将按钮设置为默认按钮。如果按下 Enter 键,则会发出 clicked 信号。 |
| 8 |
setEscapeButton() 将按钮设置为按下 Escape 键时被视为已点击。 |
示例
在下面的示例中,顶级窗口上按钮的点击信号与连接的函数相连,该函数显示消息框对话框。
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()
以上代码产生以下输出。单击主窗口的按钮时,将弹出消息框。
如果单击消息框上的“确定”或“取消”按钮,则会在控制台上产生以下输出:
Button pressed is: OK Button pressed is: Cancel