我想清除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