PyQt-QMessageBox


QMessageBox是一种常用的模式对话框,用于显示一些信息性消息,并可选择要求用户通过单击其上的任何一个标准按钮进行响应。每个标准按钮都有一个预定义的标题、一个角色并返回一个预定义的十六进制数字。

下表给出了与 QMessageBox 类相关的重要方法和枚举 -

先生。 方法与说明
1

设置图标()

显示与消息严重性相对应的预定义图标

问题问题

信息信息

警告警告

批判的批判的

2

设置文本()

设置要显示的主要消息的文本

3

设置信息文本()

显示附加信息

4

设置详细信息文本()

对话框显示“详细信息”按钮。单击该文本后会出现该文本

5

设置标题()

显示对话框的自定义标题

6

设置标准按钮()

要显示的标准按钮列表。每个按钮都与

QMessageBox.确定0x00000400

QMessageBox.打开0x00002000

QMessageBox.保存0x00000800

QMessageBox.取消0x00400000

QMessageBox.关闭0x00200000

QMessageBox.是0x00004000

QMessageBox.No 0x00010000

QMessageBox.中止0x00040000

QMessageBox.重试0x00080000

QMessageBox.忽略0x00100000

7

设置默认按钮()

将按钮设置为默认值。如果按下 Enter 键,它会发出单击信号

8

设置退出按钮()

如果按下退出键,则将按钮设置为单击

例子

在下面的示例中,单击顶层窗口上的按钮信号,连接的函数将显示消息框对话框。

msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setText("This is a message box")
msg.setInformativeText("This is additional information")
msg.setWindowTitle("MessageBox demo")
msg.setDetailedText("The details are as follows:")

setStandardButton() 函数显示所需的按钮。

msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)

ButtonClicked() 信号连接到一个槽函数,该函数标识信号源的标题。

msg.buttonClicked.connect(msgbtn)

该示例的完整代码如下 -

import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *

def window():
   app = QApplication(sys.argv)
   w = QWidget()
   b = QPushButton(w)
   b.setText("Show message!")

   b.move(50,50)
   b.clicked.connect(showdialog)
   w.setWindowTitle("PyQt Dialog demo")
   w.show()
   sys.exit(app.exec_())
	
def showdialog():
   msg = QMessageBox()
   msg.setIcon(QMessageBox.Information)

   msg.setText("This is a message box")
   msg.setInformativeText("This is additional information")
   msg.setWindowTitle("MessageBox demo")
   msg.setDetailedText("The details are as follows:")
   msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
   msg.buttonClicked.connect(msgbtn)
	
   retval = msg.exec_()
   print "value of pressed message box button:", retval
	
def msgbtn(i):
   print "Button pressed is:",i.text()
	
if __name__ == '__main__': 
   window()

上面的代码产生以下输出 -

QMessageBox输出1 QMessageBox输出2