Aufruf von Subwindow mit mehrere Klassen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Seires
User
Beiträge: 12
Registriert: Samstag 18. August 2012, 08:33

Hey,
ich habe folgendes Problem, an dem ich mich grade wirklich aufhänge und einfach nicht weiter komme:

Ich schreibe derzeit ein Programm, welches unter anderem die Möglichkeit bieten soll, gewisse Einstellungen mit Hilfe eines Assistenten (der einen dann Schritt für Schritt mit Erklärungen von einer Einstellungsmöglichkeit zur anderen führt) vorzunehmen.

Der Programmcode für den Assisten liegt in einem extra Modul mit dem "assistant_modul". In dem Modul selbst finden sich verschiedene Klassen, je nach dem, in welchem Schritt man sich in dem Assistenten befindet.

Nach einen Klick auf den "Assistenten starten"-Button wird folgender Code ausgeführt:

Code: Alles auswählen

        assistant = assistant_modul.assistant_step0() 
        assistant.exec_ ()
Das funktioniert nun auch zunächst prima, nur wen ich jetzt auf den "Weiter"-Button drücke, der folgenden Code hat:

Code: Alles auswählen

    def on_pBContinue (self):
        self.assistant_continue = assistant_step1()        
        self.assistant_continue.show ()
        self.close ()
Springt er nicht zum nächsten Fenster (in die Klasse 'assistant_step1'), sondern schließt den Assistenten wieder komplett.

Wo liegt mein Fehler?

Vielen Dank für eure Hilfe!

Was ich schon getestet habe für den "Assistenten starten"-Button:

Code: Alles auswählen

assistant.show ()
Assistent wird gar nicht geöffnet bzw. so kurz, dass es nicht sichtbar ist.

Code: Alles auswählen

        exec (assistant.show ())
Hat zwar das gewünschte Ergebnis, spuckt aber die Fehlermeldung
TypeError: exec() arg 1 must be a string, bytes or code object
aus.

Code: Alles auswählen

        assistant.show ()
        assistant.blabla.exec_()
Funktioniert ebenfalls wie gewünscht, spuckt aber die Fehlermeldung
AttributeError: 'ass_backup_source_step0' object has no attribute 'blabla'
aus.
Gehe bei den letzten beiden Varianten davon aus, dass sie eigentlich ziemlich falsch sind, weil sie aber durch den Fehler eine Schleife erzeugen, die sich nicht schließt, führen sie vordergründig zum gewünschten Ergebnis.
Seires
User
Beiträge: 12
Registriert: Samstag 18. August 2012, 08:33

Ich pushe nochmal... Habe mich jetzt eine längere Zeit um andere Dinge gekümmert, aber das beschriebene Problem leider immer noch nicht gelöst... :(
BlackJack

@Seires: Mir war die Beschreibung zu lang und zu konfus.

Du weisst, dass es `QWizard` und `QWizardPage` gibt? Nicht dass Du hier etwas neu erfindest, was schon fertig in der Qt-Klassenbibliothek existiert.

Ansonsten: Short, Self Contained, Correct (Compilable), Example please.
Seires
User
Beiträge: 12
Registriert: Samstag 18. August 2012, 08:33

Erstmal vielen, vielen Dank!
Habe die ganze Zeit nach so etwas in der Richtung gesucht, es aber irgendwie selbst nicht gefunden. Mal schauen, wie weit ich jetzt komme ;)
(Wusste nicht, dass der "Assistent" im Englischen "Wizard" heißt...)
Antworten