有没有办法一次性清除 tkinter 窗口中的所有小部件,而无需直接引用它们?

Oli*_*amy 3 python tkinter

我正在尝试完全清除 tkinter 窗口。但是,我需要一种方法来一次清除窗口上的每个小部件而不使用pack.forget().

TmZ*_*mZn 14

您可以使用一个简单的递归循环来列出主窗口的所有子级 wigets:

def all_children (window) :
    _list = window.winfo_children()

    for item in _list :
        if item.winfo_children() :
            _list.extend(item.winfo_children())

    return _list
Run Code Online (Sandbox Code Playgroud)

然后只需使用此列表:

widget_list = all_children(window)
for item in widget_list:
    item.pack_forget()
Run Code Online (Sandbox Code Playgroud)