python ttk treeview问题
问题描述:
我会在这里诚实地说,我玩的treeviews和ttk没有真正了解它是如何工作的。不过,我收到了一些问题,经过谷歌搜索后,我无法找到解决问题的正确方法。我使用treeviews作为列表框,因为ttk没有列表框元素。python ttk treeview问题
-
1:问题1:不知何故,我总是得到一个额外的列,为什么?
chat = ttk.Treeview(height="26", columns=("Nick","Mensaje","Hora"), selectmode="extended") chat.heading('#0', text='Nick', anchor=W) chat.heading('#1', text='Mensaje', anchor=W) chat.heading('#2', text='Hora', anchor=W) chat.column('#0', stretch=NO, minwidth=0, width=100) chat.column('#1', stretch=NO, minwidth=0, width=510) chat.column('#2', stretch=NO, minwidth=0, width=100) chat.place(bordermode=OUTSIDE, x=5, y=45)
但是,这增加了在最后一个额外的列,所以我不得不添加解决它:
chat.column('#3', stretch=NO, minwidth=0, width=0)
-
问题2:当我试图插入项目
treeview
,我意识到我找不到一种方式来说明信息应该去哪里。例如,我想要一个变量来填充column1
,但另一个变量填充为column2
。至于我能去为:chat.insert('', "end", '', text=message)
但这只会对column0
添加的消息。我如何使它保存在column1
而另一个变种保存在column0
?
- 问题3:这真的是用ttk显示列表框的最好方法吗?
谢谢你的回答。
编辑:我是特林做这样的事情:http://pdqi.com/w/Download/BLT/treeview1.gif或http://zoomq.qiniudn.com/ZQScrapBook/ZqFLOSS/data/20100928164510/multicolumn_treeview_plastiktheme.png
答
对于问题1:我建议你重写代码:
chat = ttk.Treeview(height="26", columns=("Mensaje", "Hora"))
chat.heading('#0', text='Nick', anchor=W)
chat.heading('Mensaje', text='Mensaje', anchor=W)
chat.heading('Hora', text='Hora', anchor=W)
chat.column('#0', stretch=NO, minwidth=0, width=100)
chat.column('Mensaje', stretch=NO, minwidth=0, width=510)
chat.column('Hora', stretch=NO, minwidth=0, width=100)
对于问题2 :使用
chat.insert('', 'end', 'iid_1')
chat.set('iid_1', 'Hora', 'your value')
对于问题3:目前ttk中没有列表框,但可以使用经典Tk小部件中的Listbox。
哦......谢谢!那么如果这是它的工作原理,可以在特定FontColour中设置列的信息而不影响整行? – Saelyth
@Saelyth可能,没有。 – user2036954