Tkinter树视图-展开所有子节点

时间:2020-01-04 20:17:45

标签: python tkinter treeview

在Python 3.7中,当一个节点打开时,我需要扩展所有子节点。让我们使用以下示例:

A
--A.1
----A.1.1
--A.2
----A.2.1
----A.2.2
B
--B.1
----B.1.1
--B.2

在此示例中,当A在GUI中扩展时,A的所有子节点也应扩展。

根据官方treeview documentation,您可以绑定事件“ <>”,该事件在扩展所选节点之前立即生成。知道了这一点,我可以这样绑定事件:

tree.bind('<<TreeviewOpen>>', handleOpenEvent)

现在,我可以使用this solution中的策略编写一种处理事件的方法,如下所示:

def handleOpenEvent(event):
  tree.item(tree.focus(), open=True) # Tried with and without
  for child in tree.get_children(tree.focus()):
    tree.item(child, open=True)

无论我如何尝试,此代码都不会扩展所选节点上的所有子级。我尝试过使其扩展A可以扩展所有B个节点,并且确实可以工作,但是当扩展A时我无法扩展所有A节点。似乎Treeview正在执行一些我不知道的额外底层操作。有什么想法吗?

0 个答案:

没有答案