Warten auf das Toplevel-Ende

Fragen zu Tkinter.
Antworten
problembär

Xynon1 hat geschrieben:"tkSimpleDialog.Dialog" ist doch extra zum Bau von eigenen Dialogen gemacht. Einfach ableiten und die "body"-Methode überschreiben, dort kann man die Widgets die sich auf diesem befinden sollen festlegen. ... So schwer ist das nun nicht und man fängt nicht an das Rad neu zu erfinden.
Das mag schon sein. Manchmal brauche ich aber wirklich große Dialogfelder, auf denen sich neben den Buttons noch 5 Labels, 5 Entries, ein paar Radiobuttons und vieleicht noch ein/zwei Scales befinden. Wahrscheinlich kann man da auch mit "tkSimpleDialog" arbeiten, aber dann muß man sowieso so viel überschreiben, da kann man auch gleich eine eigene Klasse schreiben.
hypnoticum hat geschrieben:logisch ist es - funktionieren tut es aber nur anders herum, weil ich kein master habe.
Das sieht vielleicht so aus, aber irgendwann wird Dir so der Mainloop abstürzen. Dein Programm ist dann also instabil. Bevor ich ein sauberes ".wait_window()" hinbekommen habe, ist mir ein paarmal ein Absturz passiert.

Gruß
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Nach dem Prinzip kann bzw. muss man immer was eigenes schreiben. Aber der Dialog bietet einen guten Ansatz ohne selbst "rumprobieren" zu müssen. Letztlich ist es sicherlich egal.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
hypnoticum
User
Beiträge: 132
Registriert: Dienstag 15. März 2011, 15:43

Beim nächsten mal werde ich den tkSimpleDialog.Dialog ausprobieren.
vielleicht sollte man es besser statt "master" als "slave" bezeichnen um etwas Verwirrung rauszunehmen:

Code: Alles auswählen

self.slave = None
...
self.Dia.wait_window(self.slave)
BlackJack

@hypnoticum: Du wartest auf ein `master`, dass Du `slave` nennst und findest das weniger verwirrend!? :shock:
Antworten