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

Fragen zu Tkinter.
Antworten
l30n100
User
Beiträge: 19
Registriert: Sonntag 18. Februar 2018, 14:15

Donnerstag 22. Februar 2018, 20:02

Hallo,
ich wollte einmal wissen, ob man ein Fenster/Window aus einer anderen Klasse aus schließen kann. :wink:
lg
__deets__
User
Beiträge: 4028
Registriert: Mittwoch 14. Oktober 2015, 14:29

Donnerstag 22. Februar 2018, 20:09

Ja, wieso denn nicht? Eine Klasse kann doch Argumente bekommen, die sie sich merkt & dann zb destroy aufruft. Wieso sollte das nicht gehen?
Sirius3
User
Beiträge: 8816
Registriert: Sonntag 21. Oktober 2012, 17:20

Donnerstag 22. Februar 2018, 20:10

@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.
Benutzeravatar
wuf
User
Beiträge: 1497
Registriert: Sonntag 8. Juni 2003, 09:50

Freitag 23. Februar 2018, 10:06

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:
Take it easy Mates!
l30n100
User
Beiträge: 19
Registriert: Sonntag 18. Februar 2018, 14:15

Freitag 23. Februar 2018, 14:23

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
l30n100
User
Beiträge: 19
Registriert: Sonntag 18. Februar 2018, 14:15

Freitag 23. Februar 2018, 14:26

__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
Antworten