如何利用 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()
输出
如果我们执行上面的代码,它将在一个列表框中显示包含项目列表的窗口和一个按钮。
我们单击“全部清除”按钮时,它将删除框架对象内所有子元素。
广告