如何在 tkinter 中删除小部件?

时间:2021-02-21 04:00:58

标签: python tkinter

我需要删除一个小部件,例如:

    button1 = Button(root, text="start", command=self.cc).pack()

如何制作另一个具有删除 button1 的命令的小部件? 甚至只是一个在调用时删除按钮 1 的函数。

我在任何地方都找不到答案:/

还有另一个类似的问题(如何从窗口中删除 Tkinter 小部件?)但它已有 8 年历史,因此解决方案可能已经过时

1 个答案:

答案 0 :(得分:0)

每个小部件都有一个名为 destroy() 的函数,您可以从另一个按钮命令调用它,如下所示:

import tkinter as tk 


root = tk.Tk()

button = tk.Button(root,text="Btn1")
button.grid(row=0,column=0)
button2 = tk.Button(root,text="Delete",command=button.destroy)
button2.grid(row=1,column=0)
    
root.mainloop()

如果要销毁框架或“根”内的所有小部件,可以使用名为 winfo_children 的函数,该函数选择所有子小部件,然后循环销毁每个小部件:

def destroyall():
    for widget in root.winfo_children():
            widget.destroy()

button3 = tk.Button(root,text="Delete All",command=destroyall)
button3.grid(row=2,column=0)
相关问题