• QMessageBox消息框


    继承于  QDialog  

    对话框的构成:

    构造函数法: 

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox,QCheckBox
    from PyQt5.QtCore import Qt
    from PyQt5.QtGui import QPixmap
    
    class Demo(QWidget):
        def __init__(self):
            super(Demo, self).__init__()
            mb=QMessageBox(self)  #创建信息对话框
            #继承于QDialog,需要show,exec,open来弹出
            #默认是一个模态对话框,即使show弹出的对话框也是模态的
    
            #mb = QMessageBox(QMessageBox.NoIcon,'对话框标题','<h2>主要标题信息</h2>',QMessageBox.Ok | QMessageBox.Discard    ,self)
            #参数1 图标:
                #QMessageBox.NoIcon  没有图标
                # QMessageBox.Warning  警告图标
                #QMessageBox.Critical  严重问题图标
                #QMessageBox.Information   没有任何异常图标
                #QMessageBox.Question  提问图标
            #参数2 对话框标题
            #参数3 主要标题信息--可以是富文本
            #参数4 按钮:
                #QMessageBox.Ok          使用AcceptRole定义的“确定”按钮
                #QMessageBox.Discard     “丢弃”或“不保存”按钮,具体取决于使用DestructiveRole定义的平台
                #QMessageBox.Open   使用AcceptRole定义的“打开”按钮。
                #QMessageBox.Save   使用AcceptRole定义的“保存”按钮。
                #QMessageBox.Cancel   使用RejectRole定义的“取消”按钮。
                #QMessageBox.Close   使用RejectRole定义的“关闭”按钮。
                #QMessageBox.Apply   使用ApplyRole定义的“应用”按钮。
                #QMessageBox.Reset   使用ResetRole定义的“重置”按钮。
                #QMessageBox.RestoreDefaults  使用ResetRole定义的“恢复默认值”按钮。
                #QMessageBox.SaveAll   使用AcceptRole定义的“全部保存”按钮。
                #QMessageBox.Yes   使用YesRole定义的“是”按钮。
                #QMessageBox.YesToAll   使用YesRole定义的“Yes to All”按钮。
                #QMessageBox.No   使用NoRole定义的“否”按钮。
                #QMessageBox.Help  使用HelpRole定义的“帮助”按钮。
                #QMessageBox.NoToAll  使用NoRole定义的“No to All”按钮。
                #QMessageBox.Abort   使用RejectRole定义的“Abort”按钮。
                #QMessageBox.Retry  使用AcceptRole定义的“重试”按钮。
                #QMessageBox.Ignore   使用AcceptRole定义的“忽略”按钮。
                #QMessageBox.NoButton   无效按钮。
    
            self.mb=mb
    
            #mb.setModal(False)  #设置是否模态对话框
            mb.setWindowModality(Qt.NonModal)  #设置成非模态
    
            mb.setIcon(QMessageBox.Question)  #设置标准图标
    
            mb.setIconPixmap(QPixmap('./大象.png').scaled(100,100))  #用自定义图像做图标
    
            mb.setTextFormat(Qt.AutoText)  #设置文本格式
            #Qt.PlainText  普通文本
            #Qt.RichText  富文本--默认
            #Qt.AutoText   自动识别
    
            mb.setText('<h2>我是主要标题信息</h2>')  #设置主要标题信息---支持富文本
    
    
            mb.setInformativeText('<h3>提示信息</h3>')  #设置提示信息---支持富文本
            #informativeText()   返回提示文本
    
            mb.setCheckBox(QCheckBox('复选框',mb))  #设置复选框
    
            mb.setDetailedText('我是详细文本')  #设置详细文本---不支持富文本
    
            #按钮:
            mb.setStandardButtons(QMessageBox.Yes )  #添加标准按钮
            #设置了Yes和No按钮
            #按钮类型看上面
    
            btn=QPushButton('按钮1',mb)
            mb.addButton(btn,QMessageBox.YesRole)  #添加自定义按钮--方式一
            btn1=mb.addButton('按钮2', QMessageBox.NoRole)        #方式二
            #参数2 按钮角色:
                #YesRole  按钮是一个“是”的按钮
                #InvalidRole   该按钮无效
                #AcceptRole  单击该按钮将使对话框被接受(例如,确定)
                #RejectRole  单击该按钮会导致拒绝对话框(例如取消)
                #DestructiveRole  单击该按钮会导致破坏性更改(例如,对于Discarding Changes)并关闭对话框
                #ActionRole  单击该按钮将导致更改对话框中的元素
                #HelpRole   可以单击该按钮以请求帮助。
                #NoRole  按钮是一个“无”按钮。
                #ApplyRole  该按钮应用当前更改。
                #ResetRole  该按钮将对话框的字段重置为默认值。
            #返回值:按钮对象
    
            btn5=mb.button(QMessageBox.Yes)  #返回标准按钮的对象
    
            s=mb.buttonRole(btn1)  #返回按钮的角色对象
    
            #mb.removeButton(btn1)  #移除按钮
    
            mb.setDefaultButton(btn1)  #设置自定义默认按钮
            mb.setDefaultButton(QMessageBox.Yes)  #设置标准默认按钮
    
            s=mb.defaultButton()   #返回默认按钮
    
            mb.setEscapeButton(btn1)  #设置ESC所对应的按钮--自定义
            mb.setEscapeButton(QMessageBox.Yes)  #设置ESC所对应的按钮--标准按钮
    
            mb.setTextInteractionFlags(Qt.NoTextInteraction)  #设置文本交互标志--针对主要标题信息
            #Qt.TextEditorInteraction  允许文本交互---允许编辑
            #Qt.NoTextInteraction   不允许交互
    
    
            #信号:
            mb.buttonClicked.connect(self.AA)  #按钮被点击时发出信号
            #会把被点击的按钮对象传递给槽函数
    
    
            print(s)
            mb.show()
    
        def AA(self,bt):
            print('按钮被点击了',bt)
            print('点击的按钮是:', self.mb.clickedButton())
            # clickedButton()    #返回被点击的按钮
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        demo = Demo()
        demo.show()
        sys.exit(app.exec_())

    静态方法: 

    QMessageBox.about(self,'xx1','xx2')  #展示关于消息框
    #参数2 对话框标题
    #参数3 提示消息

    r=QMessageBox.question(self,'xx1','xx2',QMessageBox.Yes | QMessageBox.No,QMessageBox.No)  #展示提问消息框
    #参数4 按钮
    #参数5 默认按钮
    #返回值:整型值 按钮的编码

    
    
    r=QMessageBox.warning(self,'xx1','xx2',QMessageBox.Yes | QMessageBox.No,QMessageBox.No)  #展示警告消息框
    #参数4 按钮
    #参数5 默认按钮
    #返回值:整型值 按钮的编码

    
    
    r=QMessageBox.critical(self,'xx1','xx2',QMessageBox.Yes | QMessageBox.No,QMessageBox.No)  #展示警告消息框
    #参数4 按钮
    #参数5 默认按钮
    #返回值:整型值 按钮的编码

     

    r=QMessageBox.information(self,'xx1','xx2',QMessageBox.Yes | QMessageBox.No,QMessageBox.No)  #展示警告消息框
    #参数4 按钮
    #参数5 默认按钮
    #返回值:整型值 按钮的编码

     

    天子骄龙

    
    
    
    

    天子骄龙

  • 相关阅读:
    旅行
    赛道修建
    逃学的小孩
    hdu4035_概率dp
    hdu4405_概率dp
    poj2096_概率dp
    poj3420_找规律+矩阵快速幂
    poj2411_状压dp
    poj3744_矩阵快速幂
    hdu5720_贪心
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10356966.html
Copyright © 2020-2023  润新知