BlackJack hat geschrieben:Wenn man für ein Toplevel zwingend ein `wait_window()` bräuchte, damit das Programm nicht instabil wird, dann sollte das doch wenigstens in *irgendeiner* Tkinter- oder Tk-Dokumentation stehen. Das wäre dann ja nicht ganz unwichtig. Ich kann diesen Hinweis aber nirgends finden. Auf der Gegenseite finde ich aber `Tkinter`-Quelltext, wie zum Beispiel IDLE wo `wait_window()` auch nur bei modalen Dialogen verwendet wird. Bei anderen `Toplevel`-Objekten wird es dort nicht verwendet.
Ich weiß nicht, ob "Beweise einzufordern" hier die richtige Vorgehensweise ist. Es gibt jedenfalls dieses '.wait_window()' und in manchen Dokumentationen wird empfohlen, es für Dialog-Fenster auch zu verwenden. (Zwei hatte ich schon angegeben, aber von mir aus auch z.B. für Perl/Tk
hier.)
Dann sollte man sich doch eher fragen, 'Was ist das?' und 'Wozu ist es da?' anstatt gleich festzustellen 'Das ist für gar nichts da!' und 'Ich weigere mich, das zu verwenden!'.
Ich stecke in den Interna von Tk nicht drin, deshalb weiß ich nicht genau, was dieses 'wait_window()' bewirkt und wie. Allerdings habe ich wie gesagt beobachtet, daß nur damit eine Anwendung mit mehreren Dialogfenstern stabil lief.
Ob das an meinem "Programmierstil" liegt, kann zwar sein, aber ich glaube eigentlich nicht. Mein Beispiel unterscheidet sich ja nun nicht so stark von wufs letzter Version.
Mein Beispiel war übrigens leider sehr unglücklich gewählt: "tkMessageBox" erstellt ja gerade Dialog-Fenster. Wenn also '.wait_window()' dafür nötig sein sollte, wird es davon wahrscheinlich auch aufgerufen. Das würde in wufs letztem Beispiel die Probleme verschleiern, weil ja wahrscheinlich über 'tkMessageBox' ein '.wait_window()' ausgeführt würde. Das ist aber mein Fehler: Ich hatte ja 'tkMessageBox' in meinem Beispiel verwendet.
Also: Ich kann euch nicht mit letzter Gewißheit sagen, wann es ohne '.wait_window()' zu Schwierigkeiten kommt. Aber es gibt diese Methode, und wahrscheinlich hat sie einen bestimmten Zweck. Das zu ignorieren ist keine Lösung.
Gruß