如何删除所有小部件,但将窗口保留在python tkinter中?

时间:2019-06-21 22:45:46

标签: python tkinter

我想在同一个窗口中显示第一个GUI框架。如何仅删除条目,标签和按钮?

我已经尝试过root.destory和pack.forget,但是我没有设法使它正确。

2 个答案:

答案 0 :(得分:1)

如果这是您希望做的很多事情,那么一个非常简单的解决方案是将框架作为唯一的窗口小部件直接放在根窗口中。然后,将所有其他小部件放入框架中。准备删除所有窗口小部件时,您要做的就是销毁该框架,其所有子框架将自动销毁。

坦率地说,只是遍历root.winfo_children()的结果并删除所有小部件,这是微不足道的。

答案 1 :(得分:-1)

我认为这会起作用:

def all_children(window):
    _list = window.winfo_children()
    for item in _list:
        if item.winfo_children():
            _list.extend(item.winfo_children())
    return _list


widget_list = all_children(root)
for item in widget_list:
    item.pack_forget()