treeview组件由三部分组成:tree、headings、data_list。
show属性只控制tree和headings,不控制data_list。
show的默认值是“tree headings”,即tree和headings都显示。
from tkinter import *
from tkinter import ttk
win = Tk()
win.title('Treeview Demo')
win.geometry('450x280')
tv = ttk.Treeview(win)
tv['columns']=('Jan', 'Feb', 'Mar')
tv.column('#0', width=120, stretch=YES)
tv.column('#1', anchor=CENTER, width=100)
tv.column('#2', anchor=CENTER, width=100)
tv.column('#3', anchor=CENTER, width=100)
tv.heading('#0', text='业绩', anchor=CENTER)
tv.heading('#1', text='一月', anchor=CENTER)
tv.heading('#2', text='二月', anchor=CENTER)
tv.heading('#3', text='三月', anchor=CENTER)
teamx=tv.insert(open=True, parent='', index=0, text='广州分公司', values=('100','120','125'))
tv.insert(parent=teamx, index=1, text='张三', values=('55','60','65'))
tv.insert(parent=teamx, index=2, text='李四', values=('45','60','60'))
teamx =tv.insert( open=True,parent='', index=3, text='深圳分公司', values=('110','120','130'))
tv.insert(parent=teamx, index=4, text='王五', values=('55','50','60'))
tv.insert(parent=teamx, index=5, text='马六', values=('55','70','70'))
tv.pack()
win.mainloop()
# 以下这个只显示data_list,不显示tree和headings都不显示:
tv = ttk.Treeview(win, show='')
# 以下这个只显示headings、data_list,不显示tree:
tv = ttk.Treeview(win, show='headings')
# 以下这个只显示tree、data_list,不显示headings:
tv = ttk.Treeview(win, show='tree')
# 以下两个是等效的,tree、headings、data_list都显示:
tv = ttk.Treeview(win)
tv = ttk.Treeview(win, show='tree headings')
treeview虽然可以显示树状目录,但更常用于作为表格显示二维列表数据,为什么叫treeview 不叫 tableview 之类呢?
对于表格数据呈现,不少语言或框架通常有类似datagrid、listview之类的控件。在tkinter中,我们把treeview当成是tree和listview的组合即可。