Seite 1 von 1

Ist es möglich ein "tkinter.Tk()" von einer anderen Klasse aus zu "destroyen()"?

Verfasst: Donnerstag 22. Februar 2018, 20:02
von l30n100
Hallo,
ich wollte einmal wissen, ob man ein Fenster/Window aus einer anderen Klasse aus schließen kann. :wink:
lg

Re: Ist es möglich ein "tkinter.Tk()" von einer anderen Klasse aus zu "destroyen()"?

Verfasst: Donnerstag 22. Februar 2018, 20:09
von __deets__
Ja, wieso denn nicht? Eine Klasse kann doch Argumente bekommen, die sie sich merkt & dann zb destroy aufruft. Wieso sollte das nicht gehen?

Re: Ist es möglich ein "tkinter.Tk()" von einer anderen Klasse aus zu "destroyen()"?

Verfasst: Donnerstag 22. Februar 2018, 20:10
von Sirius3
@l30n100: Python ist es egal, von welcher Funktion aus Methoden von Objekten aufgerufen werden. Man sollte aber Statusänderungen nur von der verantwortlichen Instanz aus ausführen, sonst verliert man den Überblick.

Re: Ist es möglich ein "tkinter.Tk()" von einer anderen Klasse aus zu "destroyen()"?

Verfasst: Freitag 23. Februar 2018, 10:06
von wuf
Hi l30n100

Wenn du das Hauptfenster mit mein_hauptfenster.destroy() schliesst, welches durch mein_hauptfenster = tk.Tk() entsteht, beendest du auch deine Anwendung. Dies ist nicht der Fall, wenn du ein Zusatzfenster schliesst das mit mein_zusatzfenster = tk.Toplevel() erzeugt wurde. Das heisst ein Hauptfenster bleibt so lange bestehen bis du dein Anwendung beendest. Du kannst aber das Hauptfenster mit mein_hauptfenster.withdraw() unsichtbar machen während ein Zusatzfenster geöffnet wird. Nach dem schliessen eines Zusatzfensters mit mein_zusatzfenster.destroy() kann dann das Hauptfenster mit mein_hauptfenster.deiconify() wieder sichtbar gemacht werden.

Gruss wuf :wink:

Re: Ist es möglich ein "tkinter.Tk()" von einer anderen Klasse aus zu "destroyen()"?

Verfasst: Freitag 23. Februar 2018, 14:23
von l30n100
wuf hat geschrieben:Hi l30n100

Wenn du das Hauptfenster mit mein_hauptfenster.destroy() schliesst, welches durch mein_hauptfenster = tk.Tk() entsteht, beendest du auch deine Anwendung. Dies ist nicht der Fall, wenn du ein Zusatzfenster schliesst das mit mein_zusatzfenster = tk.Toplevel() erzeugt wurde. Das heisst ein Hauptfenster bleibt so lange bestehen bis du dein Anwendung beendest. Du kannst aber das Hauptfenster mit mein_hauptfenster.withdraw() unsichtbar machen während ein Zusatzfenster geöffnet wird. Nach dem schliessen eines Zusatzfensters mit mein_zusatzfenster.destroy() kann dann das Hauptfenster mit mein_hauptfenster.deiconify() wieder sichtbar gemacht werden.

Gruss wuf :wink:
Vielen dank für die Antworten.
Gut zu wissen, dass man Fenster unsichtbar machen kann.
lg

Re: Ist es möglich ein "tkinter.Tk()" von einer anderen Klasse aus zu "destroyen()"?

Verfasst: Freitag 23. Februar 2018, 14:26
von l30n100
__deets__ hat geschrieben:Ja, wieso denn nicht? Eine Klasse kann doch Argumente bekommen, die sie sich merkt & dann zb destroy aufruft. Wieso sollte das nicht gehen?
oh man stimmt.
das man Argumente einfügen kann, wusste ich, aber jetzt ist es mir klar geworden. :idea:

lg