获取Tkinter窗口中所有子小部件
有没有办法获取一个Tkinter控件的所有子控件,然后再获取这些子控件的子控件,依此类推?
简单来说,我想要获取一个窗口里所有的控件。
补充:我找到了一种方法,使用了Bryan的那句话:
def all_children (wid) :
_list = wid.winfo_children()
for item in _list :
if item.winfo_children() :
_list.extend(item.winfo_children())
return _list
1 个回答
36
你要找的方法是 winfo_children。
可以像这样使用递归:
def all_children(wid, finList=None, indent=0):
finList = finList or []
print(f"{' ' * indent}{wid=}")
children = wid.winfo_children()
for item in children:
finList.append(item)
all_children(item, finList, indent + 1)
return finList