获取 Tkinter 窗口的每个子部件

发布于 2024-12-02 18:08:34 字数 335 浏览 2 评论 0原文

是否可以获取 Tkinter 小部件的所有子级,然后获取子级的子级等等?

基本上我希望所有的小部件都在一个完整的窗口中。

编辑: 我利用布莱恩的路线找到了一个解决方案:

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

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

    return _list

Is it possible to get all of the children of a Tkinter widget, then get the children's children etc.?

Basically I want all of the widgets within one entire window.

Edit :
I found a solution utilizing Bryan's line :

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

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

    return _list

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凡间太子 2024-12-09 18:08:34

您正在寻找的方法是 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

The method you are looking for is winfo_children.

Recursive like this:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文