Python版本3.7
PySide2 Version: 5.14.1
官方文档:http://doc.qt.io/qtforpython/index.html
from PySide2.QtWidgets import QWidget, QPushButton, QApplication, QMessageBox, QGridLayout
from PySide2.QtGui import QIcon
from PySide2.QtCore import Signal, Slot
class MyWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.btn_dialog01 = QPushButton('弹出自定义关于消息框')
self.btn_dialog01.clicked.connect(self.openMessageBox01)
self.btn_dialog02 = QPushButton('弹出关于Qt信息')
self.btn_dialog02.clicked.connect(self.openMessageBox02)
self.btn_dialog03 = QPushButton('弹出危急消息框')
self.btn_dialog03.clicked.connect(self.openMessageBox03)
self.btn_dialog04 = QPushButton('弹出信息消息框')
self.btn_dialog04.clicked.connect(self.openMessageBox04)
self.btn_dialog05 = QPushButton('弹出询问消息框')
self.btn_dialog05.clicked.connect(self.openMessageBox05)
self.btn_dialog06 = QPushButton('弹出警告消息框')
self.btn_dialog06.clicked.connect(self.openMessageBox06)
self.layout = QGridLayout()
self.layout.addWidget(self.btn_dialog01, 1, 1)
self.layout.addWidget(self.btn_dialog02, 1, 2)
self.layout.addWidget(self.btn_dialog03, 1, 3)
self.layout.addWidget(self.btn_dialog04, 2, 1)
self.layout.addWidget(self.btn_dialog05, 2, 2)
self.layout.addWidget(self.btn_dialog06, 2, 3)
self.setLayout(self.layout)
@Slot()
def openMessageBox01(self):
QMessageBox.about(self, '我是标题', '我是内容')
@Slot()
def openMessageBox02(self):
QMessageBox.aboutQt(self)
@Slot()
def openMessageBox03(self):
QMessageBox.critical(self, '我是标题', '我是内容')
@Slot()
def openMessageBox04(self):
QMessageBox.information(self, '我是标题', '我是内容')
@Slot()
def openMessageBox05(self):
print(QMessageBox.question(self, '我是标题', '我是内容'))
@Slot()
def openMessageBox06(self):
QMessageBox().warning(self, '我是标题', '我是内容')
app = QApplication()
widget = MyWidget()
widget.show()
app.exec_()
运行截图:
在QT中显示消息对话框有两种方式,一是像上面那样,直接调用QMessageBox
类的静态方法,即可显示出需要的消息对话框。第二种后续再讨论。QT为我们提供了5种基本的对话框,当然我们也可以自己定义一个对话框,这个也是后续再讨论。
第一种是关于对话框(about()
),这种对话框一般用于显示有关软件的信息,比如版本啥的。如Qt给我们提供的QMessageBox.aboutQt()
这个就显示了有关Qt的相关信息。
第二种是危急对话框(本人工地英语0_0)(critical()
),主要用来提示这种操作,或者某种情况将会导致严重的后果。
第三种是信息提示对话框(information()
),这个就是一般信息提示用了。
第四种就是询问对话框(question()
),这个一般用于某些关键操作,用于提示用户,以免用户误操作。所以根据返回值就可以判断,其实上面消息对话框都有返回值,返回的是这个对话框的选择的哪个按钮,根据返回不同的按钮值来进行判断,可以自行打印出返回值看看。
第五种就是警告对话框了(warning()
),这个应该都明白,跟危机对话框很相似,不过没有危机对话框的情况严重就可以用警告对话框。
注意以上消息对话框都必须指定它的父对象,不然会报错,因为上面的消息对话框是依赖于父对象而存在的。还有更多细节操作请参考官方手册。
友情链接:
QMessageBox