【问题标题】:TTK Treeview doesn't display subtreesTTK Treeview 不显示子树
【发布时间】:2017-01-12 11:00:43
【问题描述】:

我正在使用 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)作为父节点不显示扩展可能性字形,并且子节点不缩进。

【问题讨论】:

标签: python-3.x tkinter treeview ttk


【解决方案1】:

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

为了让你看到目录,即树状结构,你需要:

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

您还可以在 'Un' 的 .insert 方法中添加“open = True”,以便在开头显示 'Un' 的子级。

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()

【讨论】:

    猜你喜欢
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 2011-12-14
    • 2014-03-28
    相关资源
    最近更新 更多