Ich habe Probleme mit den Ergebnissen meines Popup-Fensters. Im Folgenden habe ich einen Teil meines Codes gezeigt, um das Problem zu verstehen.Wie bekomme ich das Ergebnis aus dem Bestätigungsdialog?
Es ist eine Art Pop-up-Fenster, wo der Benutzer eine Auswahl in der GUI trifft. Danach sollte ein Fenster mit der Frage "Sind Sie sicher?" Und zwei Schaltflächen "Ja" und "Nein" angezeigt werden.
Das Problem ist, dass, wenn ich den Code unten (vor und nach der msg.show()
), habe ich den gleichen Wert wie False
.
Warum es so nicht funktioniert:
- Vor-Funktion ->
False
- mein Fenster anzeigen und warten Sie die Taste
- klicken Wenn ich Schaltfläche geklickt „Ja“, dann
True
geben, sonstFalse
Wie kann ich das richtig handhaben? Gibt es einen anderen Ansatz?
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_())