我想清除tkinter中的一個幀,以便可以寫入新的內容(刷新信息),但我無法做到這一點。我知道這些Python Tkinter清除幀
frame.destroy()
frame.pack_forget()
frame.grid_forget()
但是frame.destroy()將完全刪除該幀。而另外兩個也不能給我我想要的結果。我需要的只是清除框架中的每個項目,但框架本身將保持。無論如何去做?
我想清除tkinter中的一個幀,以便可以寫入新的內容(刷新信息),但我無法做到這一點。我知道這些Python Tkinter清除幀
frame.destroy()
frame.pack_forget()
frame.grid_forget()
但是frame.destroy()將完全刪除該幀。而另外兩個也不能給我我想要的結果。我需要的只是清除框架中的每個項目,但框架本身將保持。無論如何去做?
pack_forget
和grid_forget
將只從視圖中刪除小部件,它不會銷燬它們。如果你不打算重新使用小部件,你唯一真正的選擇是用destroy
方法銷燬它們。
要做到這一點,你有兩個選擇:單獨銷燬每一個,或銷燬將導致其所有孩子被毀的框架。後者通常是最簡單和最有效的。
既然你聲稱你不想破壞容器框架,創建一個二級框架。讓這個二級框架成爲你想要刪除的所有小部件的容器,然後把這個框架放在你要做的父項目而不是想要銷燬。然後,這只是一個摧毀這個框架的問題,所有的內部小部件都會隨着它一起銷燬。
http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/universal.html
w.winfo_children()
返回均爲w的孩子的名單,在他們 堆疊順序從低(底)到最高(頂部)。
for widget in frame.winfo_children():
widget.destroy()
會破壞所有的部件在你的框架。不需要第二幀。
取決於任務,你可以在框架中創建一個框架並銷燬該框架 – User