如何使用 Python 的 Tkinter 删除所有子元素?

tkinterpythongui-programming更新于 2025/5/20 0:12:17

框架在 Tkinter 应用程序中非常有用。如果我们在应用程序中定义一个框架,则意味着我们有权在其中添加一组小部件。但是,所有这些小部件都称为该特定框架的子项。

假设我们想要删除框架中定义的所有子小部件。然后,首先我们必须使用 winfo_children() 方法将焦点放在子项上。一旦获得焦点,我们就可以使用 destroy() 方法删除所有现有子项。

示例

#导入 Tkinter 库
from tkinter import *

#创建 Tkinter Frame 实例
win = Tk()

#设置窗口的几何形状
win.geometry("700x350")

#初始化 Frame
frame = Frame(win)

def clear_all():
   for item in frame.winfo_children():
      item.destroy()
      button.config(state= "disabled")

#定义 ListBox 小部件
listbox = Listbox(frame, height=10, width= 15, bg= 'grey', activestyle= 'dotbox',font='aerial')
listbox.insert(1,"Go")
listbox.insert(1,"Java")
listbox.insert(1,"Python")
listbox.insert(1,"C++")
listbox.insert(1,"Ruby")

listbox.pack()

label = Label(win, text= "Top 5 Programming Languages", font= (&39;Helvetica 15 bold&39;))
label.pack(pady= 20)
frame.pack()

#创建一个按钮来删除框架中的所有子项
button = Button(win, text= "Clear All", font= ('Helvetica 11'), command= clear_all)
button.pack()

win.mainloop()

输出

如果我们执行上述代码,它将显示一个窗口,其中包含列表框中的项目列表和一个按钮。

当我们单击"Clear All"按钮,它将删除位于框架对象内的所有子对象。


相关文章


有用资源