bei mir schliesst das Haupt-Fenster (die eigentliche Python-Anwendung) mit object.destroy() nicht. Das Unterfenster (von def open_window(self):) schliesst wieder, was sich auch wiederholen lässt. Das Hauptfenster reagiert nach dem destroy Befehl nicht mehr bleibt aber offen: Habe das auch mit Code aus einem anderen Forumbeitrag, der als Lösung eingestellt war probiert:
Code: Alles auswählen
#!/usr/bin/python3
import tkinter as tk
class Mainwindow(tk.Tk):
def __init__(self):
super().__init__()
self.title('root Fenster')
self.window = None
tk.Label(self, text="--> root <--").pack()
tk.Button(self, text='Beenden', command=self.destroy).pack()
tk.Button(self, text='w öffnen', command=self.open_window).pack()
tk.Button(self, text='w beenden', command=self.close_window).pack()
def close_window(self):
self.window.destroy()
def open_window(self):
self.window = tk.Toplevel(self)
tk.Label(self.window, text="--> w <--").pack()
def open_root():
root = Mainwindow()
root.mainloop()
if __name__ == '__main__':
open_root()
Wie kann ich das Anwendungsfenster mit Code schliessen?
Python 3.8.1, tkinter 8.6.8, IDLE 3.8.1 auf MacOS 10.13.16