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


框架在 Tkinter 应用程序中特别有用。如果我们在应用程序中定义了一个框架,这意味着我们可以特权在其中添加一组窗口小部件。但是,所有这些窗口小部件被称为该特定框架的子元素。

假设我们要删除框架中定义的所有子窗口小部件。那么,首先,我们必须使用 **winfo_children()** 方法获取子元素的焦点。一旦我们获得了焦点,就可以使用 **destroy()** 方法删除所有现有的子元素。

范例

#Import the Tkinter Library
from tkinter import *

#Create an instance of Tkinter Frame
win = Tk()

#Set the geometry of window
win.geometry("700x350")

#Initialize a Frame
frame = Frame(win)

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

#Define a ListBox widget
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= ('Helvetica 15 bold'))
label.pack(pady= 20)
frame.pack()

#Create a button to remove all the children in the frame
button = Button(win, text= "Clear All", font= ('Helvetica 11'), command= clear_all)
button.pack()

win.mainloop()

输出

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

我们单击“全部清除”按钮时,它将删除框架对象内所有子元素。

更新时间: 2021-05-25

2K+ 浏览

开启你的 职业生涯

完成课程,获得认证

开始学习
广告