我正在尝试创建一个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)
应该有5列 - 但是,最后一列右侧有第六个空白列。这是为什么?
另外,我如何实际向每列添加文字?谢谢!
答案 0 :(得分:2)
0
中的TreeView
列总是“图标列” - 请参阅this manual page,其中包含:
您的Treeview小部件将以多列结构化。第一列(我们称之为图标列)显示折叠或展开项目的图标。在其余列中,您可以显示您喜欢的任何信息。
所以我最好的猜测是,当您尝试为列0
指定标签时,Tk 添加一个? (总计6)。
至于Treeview的项的adding文字。再次,the manual page说:
从顶级条目开始,使用.insert()方法填充树。每次调用此方法都会向树中添加一个项目。使用此方法的open关键字参数指定项目最初是展开还是折叠。
如果要为此项提供iid值,请使用iid关键字参数。如果你省略这个参数,ttk会把它作为.insert()方法调用的结果并返回它。
其中介绍如何插入行,然后“实际向每列添加文字”:
values
:此参数提供要在项目的每列中显示的数据项。值以逻辑列顺序提供。如果提供的值太少,则此项中的其余列将为空;如果提供的值太多,则会丢弃附加内容。
因此,对于您定义的列,tree.insert(values=[3,"Fred",'prop','sub','guy named Fred'])
会插入给定values
的行。