PyQt5之QMessageBox弹出式对话框
QMessageBox是一种通用的弹出式对话框,用于显示消息,允许用户通过单击不同的标准按钮对消息进行反馈。每个标准按钮都有一个预定义的文本、角色和十六进制数。QMessageBox类提供了许多常用的弹出式对话框,如提示、警告、错误、询问、关于等对话框。
一、QMessageBox类中的常用方法
方法 |
描述 |
information(QWidget parent,title,text,buttons,defaultButton) |
弹出消息对话框,参数解释:parent(指定的父窗口控件),title(对话框标题),text(对话框文本),buttons(多个标准按钮,默认设为OK按钮),defaultButton(默认选中的标准按钮,默认是第一个标准按钮) |
question(QWidget parent,title,text,buttons,defaultButton) |
弹出问答对话框 |
warning(QWidget parent,title,text,buttons,defaultButton) |
弹出警告对话框 |
critical(QWidget parent,title,text,buttons,defaultButton) |
弹出严重错误对话框 |
about(QWidget parent,title,text) |
弹出关于对话框 |
setTitle() |
设置标题 |
setText() |
设置消息正文 |
setIcon() |
设置弹出对话框的图片 |
二、QMessageBox的标准按钮类型
类型 |
描述 |
QMessage.OK |
同意操作 |
QMessage.Cancel |
取消操作 |
QMessage.Yes |
同意操作 |
QMessage.No |
取消操作 |
QMessage.Abort |
终止操作 |
QMessage.Retry |
重试操作 |
QMessage.Ignore |
忽略操作 |
三、QMessageBox的使用
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class Win(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(200, 200, 400, 400)
self.setWindowTitle('QMessageBox的使用')
self.btn1 = QPushButton(self)
self.btn1.setText('弹出消息对话框')
self.btn1.clicked.connect(self.show1)
self.btn2 = QPushButton(self)
self.btn2.setText('弹出提问对话框')
self.btn2.clicked.connect(self.show2)
self.btn3 = QPushButton(self)
self.btn3.setText('弹出警告对话框')
self.btn3.clicked.connect(self.show3)
self.btn4 = QPushButton(self)
self.btn4.setText('弹出严重错误对话框')
self.btn4.clicked.connect(self.show4)
self.btn5 = QPushButton(self)
self.btn5.setText('弹出关于对话框')
self.btn5.clicked.connect(self.show5)
layout = QVBoxLayout()
layout.addWidget(self.btn1)
layout.addWidget(self.btn2)
layout.addWidget(self.btn3)
layout.addWidget(self.btn4)
layout.addWidget(self.btn5)
self.setLayout(layout)
def show1(self):
reply = QMessageBox.information(self,"消息对话框","消息对话框正文",QMessageBox.Yes | QMessageBox.No,QMessageBox.Yes)
print(reply)
def show2(self):
reply = QMessageBox.question(self,"提问对话框","提问对话框正文",QMessageBox.Yes | QMessageBox.No,QMessageBox.Yes)
print(reply)
def show3(self):
reply = QMessageBox.warning(self,"警告对话框","警告对话框正文",QMessageBox.Yes | QMessageBox.No,QMessageBox.Yes)
print(reply)
def show4(self):
reply = QMessageBox.critical(self,"严重错误对话框","严重错误对话框正文",QMessageBox.Yes | QMessageBox.No,QMessageBox.Yes)
print(reply)
def show5(self):
reply = QMessageBox.about(self,"关于对话框","关于对话框正文")
print(reply)
if __name__ == "__main__":
app = QApplication(sys.argv)
form = Win()
form.show()
sys.exit(app.exec_())
各对话框如下: