0

我会诚实地说,我正在玩树视图和 ttk,但并没有真正理解它是如何工作的。尽管如此,我遇到了一些问题,在谷歌搜索之后我找不到合适的方法来解决它。我使用树视图作为列表框,因为 ttk 没有列表框元素。

  • 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另一个 var 的同时保存它column0

  • 问题 3:这真的是使用 ttk 显示列表框的最佳(实际上更简单)方式吗?

谢谢您的回答。

编辑:我想做这样的事情:http: //pdqi.com/w/Download/BLT/treeview1.gifhttp://zoomq.qiniudn.com/ZQScrapBook/ZqFLOSS/data/20100928164510/multicolumn_treeview_plastiktheme.png

4

1 回答 1

3

对于问题 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 小部件中的列表框。

于 2013-11-14T19:45:19.023 回答