PySide2学习记录(八):消息对话框

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

运行截图:

图1

在QT中显示消息对话框有两种方式,一是像上面那样,直接调用QMessageBox类的静态方法,即可显示出需要的消息对话框。第二种后续再讨论。QT为我们提供了5种基本的对话框,当然我们也可以自己定义一个对话框,这个也是后续再讨论。

第一种是关于对话框(about()),这种对话框一般用于显示有关软件的信息,比如版本啥的。如Qt给我们提供的QMessageBox.aboutQt()这个就显示了有关Qt的相关信息。

第二种是危急对话框(本人工地英语0_0)(critical()),主要用来提示这种操作,或者某种情况将会导致严重的后果。

第三种是信息提示对话框(information()),这个就是一般信息提示用了。

第四种就是询问对话框(question()),这个一般用于某些关键操作,用于提示用户,以免用户误操作。所以根据返回值就可以判断,其实上面消息对话框都有返回值,返回的是这个对话框的选择的哪个按钮,根据返回不同的按钮值来进行判断,可以自行打印出返回值看看。

第五种就是警告对话框了(warning()),这个应该都明白,跟危机对话框很相似,不过没有危机对话框的情况严重就可以用警告对话框。

注意以上消息对话框都必须指定它的父对象,不然会报错,因为上面的消息对话框是依赖于父对象而存在的。还有更多细节操作请参考官方手册。

友情链接:
QMessageBox

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 界面 主窗口界面设计 标题栏:直接设Window-Title属性;Window-icon属性可加图标。底部状态栏:...
    码园老农阅读 9,281评论 1 13
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,924评论 0 17
  • (图片为Malika Favre插画作品) 文/赵晓璃 时隔多年,每当想起那段历历在目的往事,这位敦厚朴实的男人总...
    赵晓璃阅读 6,473评论 11 58
  • 丑丑妈妈第一次参加家长会,幼儿园的老师说:“你的儿子有多动症,在板凳上连三分钟都坐不了,你最好带他去医院看一看。”...
    大红小绿阅读 1,360评论 0 0
  • 2017年9月1日,我走进城关镇育红中心小学。崭新的工作环境,一切都是新的开始,接到了一年级二班的班主任工作及语文...
    茶与书阅读 2,383评论 0 0

友情链接更多精彩内容