【问题标题】:How to get the item count in tkinter treeview?如何在 tkinter 树视图中获取项目数?
【发布时间】:2015-09-11 13:53:21
【问题描述】:

我在treeview 中插入了几个项目。 我可以查找存储在树视图中的项目总数吗? 甚至更好:我可以遍历 所有 项,例如 for child in tree:... 吗?

Python 3.X Tkinter 8.6

【问题讨论】:

    标签: python-3.x tkinter treeview


    【解决方案1】:

    树视图有一个get_children 方法,可以获取一个项目的所有子项。在根上调用该方法,然后在每个有子项的项目上调用它是一件简单的事情。

    此方法记录在您在问题中链接到的页面中。

    这是一个简单的例子:

    def get_all_children(tree, item=""):
        children = tree.get_children(item)
        for child in children:
            children += get_all_children(tree, child)
        return children
    

    在我的盒子上,在包含 11,000 个项目的树中找到所有项目大约需要 15 毫秒

    【讨论】:

    • 是的,但是你必须递归地做。我不喜欢那样。
    • 只获取项目数量是不是有点矫枉过正?
    • @mr.wolle:您的问题以 _" 结尾...更好:我可以遍历所有项目..."。 get_children 是您遍历所有项目的方式。一旦您知道如何迭代所有项目,您就可以轻松计算计数。
    • @mr.wolle 您不一定要递归地执行此操作,这怎么会矫枉过正?
    • @mr.wolle 它可能更容易编写和理解,并且递归限制不太可能成为任何明智的树视图的问题。但是,如果您不想使用它,您没有必须使用它。
    【解决方案2】:

    len(tree.get_children()) 在 8.6 中适用于我的 ttk.Treeview

    【讨论】:

    • len(tree.get_children()) 仅适用于非常简单的 Treeview 对象 - 顶级项目下没有下级项目。前面显示的 get_all_children 函数将它们全部计算在内。
    猜你喜欢
    • 2020-04-11
    • 1970-01-01
    • 2018-07-05
    • 2020-10-22
    • 2015-10-25
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 2021-01-28
    相关资源
    最近更新 更多