1 介绍
QMessageBox是一种通用的弹出式对话框,用于显示消息,允许用户通过单击不同的标准按钮对消息进行反馈。提供了许多常用的弹出式对话框,如提示、警告、错误、询问、关于等对话框。这些不同类型的QMessageBox对话框只是显示时的图标不同,其他功能是一样的。
QMessageBox类中的常用方法如下:
方法 | 描述 |
---|---|
QMessageBox.information | 消息对话框 |
QMessageBox.warning | 弹出问答对话框 |
QMessageBox.question | 弹出警告对话框 |
QMessageBox.critical | 弹出严重错误对话框 |
QMessageBox.about | 弹出关于对话框 |
QMessageBox的标准按钮类型如下:
类型 | 描述 |
---|---|
QMesage.Ok | 同意操作 |
QMessage.Cancel | 取消操作 |
QMessge.Yes | 同意操作 |
QMessage.No | 取消操作 |
QMessage.Abort | 终止操作 |
QMessage Retry | 重试操作 |
QMessge.Ignore | 忽略操作 |
2 演示
3 代码
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '5.ui'
# Created by: PyQt5 UI code generator 5.15.4
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
import sys
from PyQt5.QtWidgets import *
from PyQt5 import QtCore, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(582, 365)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(160, 90, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(400, 90, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(280, 90, 75, 23))
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_4.setGeometry(QtCore.QRect(160, 150, 75, 23))
self.pushButton_4.setObjectName("pushButton_4")
self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_5.setGeometry(QtCore.QRect(280, 150, 75, 23))
self.pushButton_5.setObjectName("pushButton_5")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 582, 23))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
# 链接槽函数
self.pushButton.clicked.connect(self.information) # 查找函数,并在lineEdit中显示
self.pushButton_2.clicked.connect(self.warning) #加载到二维网格
self.pushButton_3.clicked.connect(self.question) # 设置运行
self.pushButton_4.clicked.connect(self.critical) # 设置暂停、恢复
self.pushButton_5.clicked.connect(self.about)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "information"))
self.pushButton_2.setText(_translate("MainWindow", "warning"))
self.pushButton_3.setText(_translate("MainWindow", "question"))
self.pushButton_4.setText(_translate("MainWindow", "critical"))
self.pushButton_5.setText(_translate("MainWindow", "about"))
def information(self):
MyWindow().information()
def warning(self):
MyWindow().warning()
def question(self):
MyWindow().question()
def critical(self):
MyWindow().critical()
def about(self):
MyWindow().about()
class MyWindow(QWidget):
def __init__(self):
super().__init__()
def information(self):
QMessageBox.information(None, "提示","button information!",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
def warning(self):
QMessageBox.warning(None, "提示","button warning",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
def question(self):
QMessageBox.question(None, "标题", "button question!",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
def critical(self):
QMessageBox.critical(None, "标题", "button critical!",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
def about(self):
QMessageBox.about(None, "标题", "button about!")
if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
注意:因为是在Ui_MainWindow()类中调用MyWindow()中的方法,所以在QMessageBox.information(None, )中的第一个参数需要为None,不能为self。