我这里有几行代码可打开tkinter toplevel window
,可通过单击destroy all button
将其破坏。当我打开几个窗户,我想摧毁所有只有一个被摧毁的挑战。尝试过quit
功能,但是它关闭了包括root window
在内的所有窗口。我只希望破坏所有顶层窗口。
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()
答案 0 :(得分:2)
您可以遍历您创建的所有小部件,并销毁Toplevels
def destroy_all():
for widget in root.winfo_children():
if isinstance(widget, tk.Toplevel):
widget.destroy()
答案 1 :(得分:2)
我喜欢在处理动态生成的小部件/容器时使用列表。在这里,我将使用一个列表来保存顶级,然后销毁列表中的每个顶级。
...
optimization: {
splitChunks: {
cacheGroups: {
commons: {
name: 'global',
filename: 'js/corp/global.js',
chunks: 'all',
minChunks: 2
}
}
}
},
...