本文总结了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_()
如下图: