PyQt4的
perl
这会显示一个消息框,但是当单击某个选项时,没有任何反应,并且该框关闭。如何运行下一个函数?
答案 0 :(得分:0)
如果审核了docs:
int QMessageBox :: exec()
将消息框显示为模式对话框,直到用户关闭它为止。
当使用带有标准按钮的QMessageBox时,此函数返回 一个StandardButton值,表示标准按钮 点击。 当使用带有自定义按钮的QMessageBox时,此功能 返回一个不透明的值;使用clickedButton()来确定哪个按钮 点击了。
注意:result()函数也返回StandardButton值 QDialog :: DialogCode
用户无法与同一应用程序中的任何其他窗口进行交互 直到他们关闭对话框,通过单击按钮或使用 窗口系统提供的机制。
另见show()和result()。
正如您所建议的那样,您必须使用clickedButton()
,如下所示:
from PyQt4 import QtGui
import sys
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
msgBox = QtGui.QMessageBox()
msgBox.setText('Which type of answers would you like to view?')
correctBtn = msgBox.addButton('Correct', QtGui.QMessageBox.YesRole)
incorrectBtn = msgBox.addButton('Incorrect', QtGui.QMessageBox.NoRole)
cancelBtn = msgBox.addButton('Cancel', QtGui.QMessageBox.RejectRole)
msgBox.exec_()
if msgBox.clickedButton() == correctBtn:
print("Correct")
elif msgBox.clickedButton() == incorrectBtn:
print("Incorrect")
elif msgBox.clickedButton() == cancelBtn:
print("Cancel")