0
ポップアップウィンドウの結果に問題があります。以下では、問題を理解するためのコードの一部を示しました。確認ダイアログの結果を取得する方法
これは、ユーザーがGUIで何らかの選択を行う一種のポップアップウィンドウです。この後、「Are you sure?」という質問と「はい」と「いいえ」の2つのボタンがあるウィンドウが表示されます。
問題は、以下のコード(msg.show()
の前後)をテストすると、同じ値がFalse
に設定されていることです。
なぜそれがこのように動作しdoesntの:関数の前に
- - >
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_())