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_())

各对话框如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐