Python 如何销毁所有打开的tkinter顶级窗口
我这里有几行代码,打开了Python 如何销毁所有打开的tkinter顶级窗口,python,tkinter,toplevel,Python,Tkinter,Toplevel,我这里有几行代码,打开了tkinter顶层窗口,点击destroy all按钮即可销毁该窗口。当我打开几个窗口并想要销毁所有窗口时,挑战是只有一个窗口被销毁。尝试了退出功能,但它关闭了所有窗口,包括根窗口。我只想毁掉所有的顶层窗户 import tkinter as tk def open_window(): global top1 top1 = tk.Toplevel() top1.geometry("100x100") def destroy_all()
tkinter顶层窗口
,点击destroy all按钮
即可销毁该窗口。当我打开几个窗口并想要销毁所有窗口时,挑战是只有一个窗口被销毁。尝试了退出功能,但它关闭了所有窗口,包括根窗口。我只想毁掉所有的顶层窗户
import tkinter as tk
def open_window():
global top1
top1 = tk.Toplevel()
top1.geometry("100x100")
def destroy_all():
top1.destroy()
root = tk.Tk()
root.geometry("500x500")
b1 = tk.Button(root, text="open", command=open_window)
b1.pack(side=tk.TOP)
b2 = tk.Button(root, text="destroy all", command=destroy_all)
b2.pack(side=tk.BOTTOM)
root.mainloop()
您可以循环浏览您创建的所有小部件,并销毁那些顶级的小部件
def destroy_all():
for widget in root.winfo_children():
if isinstance(widget, tk.Toplevel):
widget.destroy()
您可以循环浏览您创建的所有小部件,并销毁那些顶级的小部件
def destroy_all():
for widget in root.winfo_children():
if isinstance(widget, tk.Toplevel):
widget.destroy()
我喜欢在处理动态生成的小部件/容器时使用列表。在这里,我将使用一个列表来保存顶级,然后销毁列表中的每个顶级
import tkinter as tk
def open_window():
list_of_tops.append(tk.Toplevel(root))
list_of_tops[-1].geometry("100x100")
def destroy_all():
for top_window in list_of_tops:
top_window.destroy()
root = tk.Tk()
root.geometry("500x500")
list_of_tops = [] # list to store any toplevel window.
tk.Button(root, text="open", command=open_window).pack(side=tk.TOP)
tk.Button(root, text="destroy all", command=destroy_all).pack(side=tk.BOTTOM)
root.mainloop()
我喜欢在处理动态生成的小部件/容器时使用列表。在这里,我将使用一个列表来保存顶级,然后销毁列表中的每个顶级
import tkinter as tk
def open_window():
list_of_tops.append(tk.Toplevel(root))
list_of_tops[-1].geometry("100x100")
def destroy_all():
for top_window in list_of_tops:
top_window.destroy()
root = tk.Tk()
root.geometry("500x500")
list_of_tops = [] # list to store any toplevel window.
tk.Button(root, text="open", command=open_window).pack(side=tk.TOP)
tk.Button(root, text="destroy all", command=destroy_all).pack(side=tk.BOTTOM)
root.mainloop()
你考虑过将窗口附加到列表而不是标量变量吗?@BryanOakley我不明白你的建议。你考虑过将窗口附加到列表而不是标量变量吗?@BryanOakley我不明白你的建议。