我需要删除一个小部件,例如:
button1 = Button(root, text="start", command=self.cc).pack()
如何制作另一个具有删除 button1 的命令的小部件? 甚至只是一个在调用时删除按钮 1 的函数。
我在任何地方都找不到答案:/
还有另一个类似的问题(如何从窗口中删除 Tkinter 小部件?)但它已有 8 年历史,因此解决方案可能已经过时
答案 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)