了解 tkinter Treeview

Mor*_*Man 5 tkinter python-3.x

我正在尝试创建一个 Treeview - 这是我的代码:

def treeview(self):
        tree = Treeview(self.parent, columns=("no","name","props","subs", "summary"))

        tree.heading('#0', text='No.')
        tree.column('#0', width=100)
        tree.heading('#1', text='Name')
        tree.column('#1', width=100)
        tree.heading('#2', text='Props')
        tree.column('#2', width=100)
        tree.heading('#3', text='Subs')
        tree.column('#3', width=100)
        tree.heading('#4', text='Summary')
        tree.column('#4', width=100)

        tree.place(relx=0.5,rely=0.2, anchor=CENTER)
Run Code Online (Sandbox Code Playgroud)

应该有 5 列 - 但是,最后一列右侧有第六个空白列。为什么是这样?

另外,我如何实际向每一列添加文本?谢谢!

Ter*_*ros 2

0a 中的第'th 列始终TreeView是“图标列” - 请参阅此手册页,其中显示:

您的 Treeview 小部件将由多个列构成。第一列(我们将其称为图标列)显示折叠或展开项目的图标。在其余的列中,您可以显示任何您喜欢的信息。

所以我最好的猜测是,当您尝试为Tk列指定标签时,会添加一个标签吗?(总共 6 个)。0


至于向Treeview 的项目添加文本......同样,手册页说:

从顶级条目开始,使用 .insert() 方法填充树。每次调用此方法都会向树中添加一项。使用此方法的 open 关键字参数来指定该项目最初是展开还是折叠。

如果要提供此项的 iid 值,请使用 iid 关键字参数。如果省略此参数,ttk 将创建一个参数并将其作为 .insert() 方法调用的结果返回。

其中涵盖了如何插入行,然后“实际向每列添加文本”:

values:该参数提供要在项目的每一列中显示的数据项。这些值按逻辑列顺序提供。如果提供的值太少,则此项中剩余的列将为空;如果提供的值太多,多余的值将被丢弃。

因此,tree.insert(values=[3,"Fred",'prop','sub','guy named Fred'])插入一行,其中包含values您定义的列的给定值。