Teile eines Fensters im Programm verändern

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

Hallo!

Ich habe im Creator ein MainWidget erstellt und designed. Bis jetzt auch alles gut. Nur möchte ich nun, dass wenn ich einen Button drücke, die rechte Hälfte des Fensters (also alle Buttons, Labels, etc. IN dem Fenster) verschwinden und Platz für neue Buttons, etc. machen.
Bis jetzt hab ich das so gelöst, dass ich im Creator alle sich dort zuerst befindenen Widgets in ein "Unterwidget" gepackt hab. Also einfach links in der Liste unter "Containers" "Widget" ausgewählt, und alles andere da reingezogen.
Anschließend, habe ich eine neue Widget-Ui Datei erstellt und alle neuen Buttons, etc. so positioniert, wie sie sich später im MainWindow befinden sollten.
Nach pyuic4.... hatte ich dann einmal die nochmale MainWindowdatei und die Klasse für das Ersatzwidget mit den neuen Buttons darin.

Jetzt habe ich die neue Klasse importiert und das alte Widget einfach per hide() unsichtbar gemacht. Dann habe ich eine neue Variable self.new als Instanz der neuen Klasse gewählt. Bei self.new.setupUi() habe ich als Parameter das alte Widget gewählt.

Das ganze funktioniert zwar, ist aber total unübersichtlich und imo extrem unsauber. Gibts da ein gewisses Verfahren für?
Ich hoffe ihr wisst was ich meine.
Dies ist keine Signatur!
lunar

Verwende ein QStackedWidget (im Designer unter „Container“ zu finden). Dieses Steuerelement enthält mehrere Seiten, die allerdings übereinander gelegt sind, so dass immer nur eine Seite sichtbar ist. Jedes „Unterwidget“ entwirfst Du dann in einer eigenen Seite. Beim Klick auf den Knopf kannst Du dann mit ".setCurrentIndex()" oder ".setCurrentWidget()" die aktuell angezeigte Seite ändern.
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

Ohhh vielen Dank, du hast mir eine große Menge an (schon begonnener) Arbeit erspart ;-)
Dies ist keine Signatur!
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

Ahh, nee ich grade beim StackedWidget kann man manuell über diese Pfeile den Index ändern. Wie krieg ich diese Pfeile weg?
Dies ist keine Signatur!
lunar

Die Pfeile erscheinen nur im Designer.
Antworten