如何销毁所有打开的 tkinter 顶级窗口

我在这里有这几行代码可以打开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()


倚天杖
浏览 256回答 2
2回答

BIG阳

您可以遍历您创建的所有小部件,并销毁那些 Toplevelsdef destroy_all():    for widget in root.winfo_children():        if isinstance(widget, tk.Toplevel):            widget.destroy()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python