我对弹出窗口的结果有问题。下面我展示了我的部分代码来理解这个问题。你知道吗
它是一种弹出窗口,用户可以在GUI中进行选择。在此之后,它应该显示一个窗口,在那里会有一个问题“你确定吗?”,以及两个按钮“是”和“否”。你知道吗
问题是,当我测试下面的代码时(在msg.show()
之前和之后),我设置了与False
相同的值。你知道吗
为什么不这样工作:
False
True
,否则False
我怎样才能处理好这件事?还有别的办法吗?你知道吗
from PyQt4 import QtCore, QtGui
from Message import Ui_Message
import sys
class MessageBox(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent=None)
self.msg = Ui_Message()
self.msg.setupUi(self)
self.confirmed=False
self.declined=False
QtCore.QObject.connect(self.msg.NoButton, QtCore.SIGNAL(("clicked()")), self.Declined)
QtCore.QObject.connect(self.msg.YesButton, QtCore.SIGNAL(("clicked()")), self.Confirmed)
def Confirmed(self):
self.confirmed = True
MessageBox.close(self)
return True
def Declined(self):
self.declined = True
MessageBox.close(self)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
msg = MessageBox()
print('Befor show window',msg.confirmed)
msg.show()
print('After show window', msg.confirmed)
sys.exit(app.exec_())
您的示例不起作用,因为您正在窗口关闭之前打印“在显示窗口之后”。阻塞的是
exec()
方法,而不是show()
方法,因此您的示例需要这样编写:然而,一个更现实的例子展示了如何使用对话框来确认一个动作,它是这样的:
相关问题 更多 >
编程相关推荐