美文网首页PySide2
PySide2学习记录(八):消息对话框

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

作者: 3ni | 来源:发表于2018-11-26 09:57 被阅读0次

    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

    相关文章

      网友评论

        本文标题:PySide2学习记录(八):消息对话框

        本文链接:https://www.haomeiwen.com/subject/zjatqqtx.html