QMessageBox消息框

 

繼承於  QDialog  app

 

對話框的構成:函數

 

構造函數法: 

 

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 默認按鈕
#返回值:整型值 按鈕的編碼

 

 

 

 

 

 

 

天子驕龍ui

 

 

 

 

天子驕龍編碼

相關文章
相關標籤/搜索