Bei Popup das Hauptfenster einfrieren / deaktivieren

Fragen zu Tkinter.
Antworten
Lutuquox
User
Beiträge: 5
Registriert: Samstag 10. Dezember 2016, 21:23

Hi!

Ich bin auf der Suche nach einer Möglichkeit in Tkinter, beim Erscheinen eines Popups das ursprüngliche Fenster einzufrieren, sodass man es zwar noch sehen kann, aber nicht mehr damit interagieren, sondern eben nur mit dem Popup. Gibt es sowas / kann mir jemand helfen? Konnte via google leider nichts finden.

Viele Grüße,
Lutuquox
BlackJack

@Lutuquox: Das Stichwort ist ”modal”. Die `Dialog`-Basisklasse aus der Standardbibliothek macht das bereits. Die kann man entweder verwenden oder zumindest im Quelltext nachlesen was man dafür alles machen muss.
Lutuquox
User
Beiträge: 5
Registriert: Samstag 10. Dezember 2016, 21:23

@BlackJack: Danke für Deine unerwartet schnelle Antwort! :) Ich bin noch ein ziemlicher Anfänger und habe deshalb vom Originalcode leider nicht so viel verstanden. Allerdings habe ich mit dem Suchwort "modal" etwas gefunden, das wohl in etwa das macht, was ich wollte, nur dass da noch irgendetwas mit wait_window() und transient() passiert... :?:

Das, was bei mir jetzt funktioniert hat, ist, dass ich das Popup einfach als Toplevel() erstelle und anschließend einfach grab_set() darauf anwende, das ist schon alles.
BlackJack

@Lutuquox: Das Problem ist hier das die Aufrufe alle irgend etwas bewirken, zumindest bei einigen Fenstermanagern, und das man deshalb nicht sicher sein kann ob sich das nicht nur zufällig bei einem selbst so verhält wie es soll oder wie der Benutzer es erwartet. Darum nehme ich für so etwas lieber eine vorgefertigte Lösung die schon älter und damit auf verschiedenen Systemen gut getestet ist.
Antworten