Python Tkinter清除fram

2024-04-29 22:46:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图清除tkinter中的一个框架,以便可以写入新内容(刷新信息),但我无法做到这一点。我知道这些

frame.destroy()
frame.pack_forget()
frame.grid_forget()

但是frame.destroy()将完全删除该框架。另外两个也不能给我我想要的结果,我需要的只是清除框架中的所有项目,但框架本身将保持不变。有什么办法吗?


Tags: 项目框架信息内容tkinterframepackgrid
2条回答

http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/universal.html

w.winfo_children()
Returns a list of all w's children, in their stacking order from lowest (bottom) to highest (top).

for widget in frame.winfo_children():
    widget.destroy()

将销毁框架中的所有小部件。不需要第二帧。

pack_forgetgrid_forget只会从视图中删除小部件,而不会销毁它们。如果您不打算重新使用这些小部件,那么您唯一真正的选择就是使用destroy方法销毁它们。

要做到这一点,你有两个选择:分别摧毁每一个,或摧毁框架,这将导致其所有的孩子被摧毁。后者通常是最简单和最有效的。

由于您声明不想破坏容器框架,请创建一个辅助框架。将这个副框架作为要删除的所有小部件的容器,然后将这个框架放入要销毁的父对象中。然后,这只是一个破坏这个框架的问题,所有的内部小部件都会随之被破坏。

相关问题 更多 >