本文總結了PyQt中消息框的三種創建方式:
1 自帶型
msgBox = QtGui.QMessageBox.about(self, u'提示', u"\nAuthor: 望月又一(&Xu)!\n當前版本 v1.0.0") msgBox.setWindowFlags(QtCore.Qt.CustomizeWindowHint) msgBox.exec_() #模態對話框 #QMessageBox.critical(NULL, "critical", "Content", QMessageBox.Yes, QMessageBox.Yes) #帶按鍵
自帶的messagebox 總共有 information、critical、warning、question、about 五種類型,能滿足最基本的需求,使用方便。
如下圖:
2 簡單自定義型
msgBox = QtGui.QMessageBox() msgBox.setWindowTitle(u'提示') msgBox.setText(u"\nAuthor: 望月又一(&Xu)!\n當前版本 v1.0.0") msgBox.setWindowIcon(QtGui.QIcon(r':/0102.png')) #隱藏ok按鈕 msgBox.addButton(QtGui.QMessageBox.Ok) msgBox.button(QtGui.QMessageBox.Ok).hide() #模態對話框 msgBox.exec_()
如下圖:
3 復雜自定義型
def about(self): msgBox = QtGui.QDialog() #對話框大小位置 desktop = QtGui.QDesktopWidget() screen_width = desktop.screenGeometry().width() screen_height = desktop.screenGeometry().height() msgBox.setGeometry(screen_width/2-150,screen_height/2-225,300,300) msgBox.setFixedSize(300,300) #對話框大名字 & Icon msgBox.setWindowTitle(u'關於') #msgBox.setWindowIcon(QtGui.QIcon(r':/0102.png')) #放圖片的label label = QtGui.QLabel() label.setPixmap(QtGui.QPixmap(r':/0103.png')) label.setAlignment(QtCore.Qt.AlignHCenter) #放文字信息的label label1 = QtGui.QLabel() label1.setFont(QtGui.QFont("Microsoft YaHei", 12)) pa = QtGui.QPalette() pa.setColor(QtGui.QPalette.WindowText,QtGui.QColor("#0x000000")); label1.setPalette(pa) label1.setText(u"\nAuthor: 望月又一(&Xu)!\n當前版本 v1.0.0") label1.setAlignment(QtCore.Qt.AlignHCenter) #布局 hbox = QtGui.QVBoxLayout() hbox.addWidget(label) hbox.addWidget(label1) vbox = QtGui.QVBoxLayout() vbox.addLayout(hbox) msgBox.setLayout(vbox) #模態對話框 msgBox.exec_()
如下圖: