Die Kombination von zwei QMainWindows
-
13-09-2019 - |
Frage
Guten Tag Pythonistas und der Rest der kodierenden Menge,
Ich habe zwei QMainWindows entworfen und separat codiert. Ich muss:
- Anzeige zuerst
- auf einem Tastendruck schließen Sie das erste Fenster
- konstruieren und zeigt das zweite Fenster, um die Argumente aus dem ersten using
Ich habe versucht, eine dritte Klasse zu entwerfen, den Fluss zu kontrollieren, aber es nicht verstehen, meinen Signal / Slot-Versuch:
QtCore.QObject.connect(self.firstWindow,QtCore.SIGNAL("destroyed()"),self.openSecondWindow)
Oh Gurus, würden Sie mich auf einigem cleveren Weg erleuchten oder eine witzige Hack meine Schwierigkeiten zu lösen.
Prost.
Lösung 2
Nun, ich habe auf der Steuerklasse (die nächste Mal macht die Steuerung als das erste, was und erst danach die Fenster machen) aufgegeben
Statt die Fenster zusammengefügt werden von den Sekunden Konstruktor Samen in den Körper des ersten Injektion und dann die junge Mutter self.close()
. So tragisch.
Andere Tipps
Antwort:
Ich hatte einige Probleme mit Signalen vor kurzem zu verbinden. Ich fand, dass es funktionierte, als ich die Klammern aus dem QtCore.SIGNAL
entfernt.
versuchen, dies zu ändern:
QtCore.SIGNAL("destroyed()")
folgt aus:
QtCore.SIGNAL("destroyed")
Hinweis:
Das ist, weil Ihr die „alten Stil“ Signale / Slots nach Riverbank verwenden. Hier ist der Bezug auf die docs . Insbesondere ist dies die Linie, die Sie suchen:
QtCore.QObject.connect(a, QtCore.SIGNAL("PySig"), pyFunction)
auch:
Stellen Sie sicher, Ihre this.FirstWindow
Klasse diese Zeile vor Ihrer __init__(self...)
hat:
__pyqtSignals__ = ( "destroyed" )