如何利用 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+ 瀏覽

開啟你的 職業生涯

完成課程,獲得認證

開始學習
廣告
© . All rights reserved.