TTK Treeview 不显示子树

TTK Treeview doesn't display subtrees

我正在使用 Python3 TTK Treeview 来显示树。但首先,子节点没有缩进,只有树的第一个子层是可见的。父子节点不显示其子节点。

from tkinter import *
from tkinter.ttk import *

Win = Tk()

entries_tree = Treeview(Win, columns = ("Glyph", "Name"), show="tree")
entries_tree.column("#0", width = 20)
entries_tree.column("#1", width = 20)
entries_tree.pack()
#Test
Un = entries_tree.insert("", "end", values = ["X", "Un"])
Deux = entries_tree.insert("", "end", values = ["X", "Deux"])
Trois = entries_tree.insert(Un, "end", values = ["X", "Un Un"], open = True)
Quatre = entries_tree.insert(Un, "end", values = ["X", "Un Deux"])
Cinq = entries_tree.insert(Un, "end", values = ["X", "Un Trois"])
Six = entries_tree.insert(Trois, "end", values = ["X", "Un Un Un"])
Sept = entries_tree.insert(Trois, "end", values = ["X", "Un Un Deux"])

Win.mainloop()

结果: 首次展示

第一个父节点扩展:它的第一个子节点(Trois)是父节点,不显示扩展可能性字形,子节点不缩进。

欢迎光临。请花时间将您的问题附加到主要问题部分。这将帮助其他未来用户从您的问题中学习并满足 Whosebug 的标准。

要查看目录,即树结构,您需要:

  1. 加宽列“#0”。默认值 20 刚好足以看到 1 个指标,而不是它的 children.
  2. .insert方法中添加选项text = your_label_name来标识树节点

您还可以在 'Un' 的 .insert 方法中添加 "open = True" 以在开头显示 'Un' 的 children。

from tkinter import *
from tkinter.ttk import *

Win = Tk()

entries_tree = Treeview(Win, columns = ("Glyph", "Name"), show="tree")
entries_tree.column("#0", width = 120, stretch=0)
entries_tree.column("#1", width = 20, stretch=0)
entries_tree.pack()
#Test
Un = entries_tree.insert("", "end", text='Un', values = ["X", "Un"], open = True)
Deux = entries_tree.insert("", "end", text='Deux', values = ["X", "Deux"])
Trois = entries_tree.insert(Un, "end", text='Trois', values = ["X", "Un Un"], open = True)
Quatre = entries_tree.insert(Un, "end", text='Quatre', values = ["X", "Un Deux"])
Cinq = entries_tree.insert(Un, "end", text='Cinq', values = ["X", "Un Trois"])
Six = entries_tree.insert(Trois, "end", text='Six', values = ["X", "Un Un Un"])
Sept = entries_tree.insert(Trois, "end", text='Sept', values = ["X", "Un Un Deux"])

Win.mainloop()