Aus einem QWindow-Objekt würde ich gerne ein QWidget modal aufrufen und per OK-Button (in diesem Widget) wieder modal in mein Haupt-Fenster zurückkehren. Dabei möchte ich ein Objekt an eine QWindow-Instanz-Variable zurückgeben.
Dazu habe ich einen Ansatz gefunden: http://stackoverflow.com/questions/1819 ... ce-its-clo. Der Ansatz funktioniert aber bei mir aus zwei Gründen nicht:
1. ein QWidget hat keine exec_()-Methode,
2. Durch den @staticmethod-Dekorator komme ich nicht an eine Instanzvariable dran (zumindestens weiss ich nicht wie und ob das überhaupt geht ?).
Ausserdem habe ich versucht, der Sache mit Flags Herr zu werden, wie hier beschrieben: http://stackoverflow.com/questions/1946 ... get-closes
Das klappt aber auch nicht. Das Hauptfenster ist immer nach wie vor bedienbar.
Change the modality of the window/widget so that it blocks input to its parent window:
widget.setWindowModality(QtCore.Qt.WindowModal)
or to the whole application:
widget.setWindowModality(QtCore.Qt.ApplicationModal)
Ich möchte halt erreichen, dass das Hauptfenster während des Vorhandenseins des Eingabe-Widgets nicht bedienbar/deaktiviert ist.
Wie könnte ich das hinbekommen ?
Freundliche Grüße
mephisto-online
EDIT: Ich hatte setWindowModality(QtCore.Qt.ApplicationModal) an der falschen Stelle aufgerufen. In der ___init___()-Methode des Widgets funktioniert es ! Sorry für meine Ungeduld und meine mangelnde Qt-Experience als Einsteiger. Damit ist auch das 2. Problem gelöst, denn so brauche ich auch keine staticmethod-Funktion. Allerdings interessiert mich schon, ob man in einer static-dekorierten Klassen-Methode überhaupt an Instanz-Attribute dran kommt. Das ist aber nun nicht Thema dieses Threads.