Python: Objekte/Widgets gruppieren?
Hallo! Ich hatte die Idee gehabt, in Python ein Programm zu schreiben, mit dem ich ein wenig üben konnte.
Ich wollte ein Hauptmenü machen. Das geht dann in ein Untermenü hinein. Davon abhängig führt es eine Aktion aus.
Es funktioniert alles super. Meine Frage ist nur, wie ich es effizienter gestalten kann.
Ich hätte es so gelöst, dass ich alle Buttons und Texte des Hauptmenüs erscheinen lasse, wenn es ins Untermenü geht diese zerstöre und dann die des Untermenüs aufrufe.
Kann man da die jeweiligen Knöpfe und Texte und so gruppieren, sodass man den Befehl destroy nur einmal aufrufen muss, anstatt jedes einzelne Widget aufzurufen. Geht es irgendwie?
1 Antwort
Für Menüs mit Untermenüs u.ä. werden üblicherweise Menu-Widgets ineinander geschachtelt. Einen Artikel dazu findest du hier.
Du scheinst allerdings eine andere Art Menü für dich gebaut zu haben.
Widgets kannst du jedenfalls innerhalb eines Frame-Widget gruppieren. Das funktioniert genauso, wie beim Rootfenster über Layout Manager.
Statt Komponenten, die du noch einmal wiederverwenden möchtest (Nutzer sollen ja sicherlich vom Untermenü auch wieder in das Hauptmenü wechseln können) zu löschen, wäre es besser, sie nur auszublenden.
Wenn du deine Komponente mit einem Grid Layout Manager anordnest, kannst du sie mit der grid_remove-Methode verstecken und mit grid wieder in das Grid setzen. Dabei wird die vorherige Konfiguration verwendet.
Beispiel:
some_widget.grid(column = 1, row = 1)
some_widget.grid_remove() # hide
some_widget.grid() # show / restore
Ja, ich habe Python in der Schule gelernt und für Grafiken mir ein Crashkurs-Buch für Python gekauft, da war das nicht dabei. ^^"
Ans Ausblenden hatte ich auch gedacht, nur wusste ich nicht wie - und hatte eher die Befürchtung, dass sie trotzdem noch anwählbar wären - deswegen löschen und dann wieder einfügen.
Vielen Dank, ich probiere die Ideen morgen gleich aus. :D