这是我的插入代码:
import tkinter as tk
from tkinter import ttk
class SummaryTree(ttk.Treeview):
def __init__(self, parent, kwargs):
ttk.Treeview.__init__(self, parent, columns=2, selectmode=tk.NONE, show='tree', takefocus=False)
self.column('#1', anchor=tk.W)
self.tag_configure('evenrow', background='#cecece')
for index, item in enumerate(kwargs.items()):
if index % 2 == 0:
self.insert('', tk.END, text=item[0], values=item[1], tags=('evenrow',))
else:
self.insert('', tk.END, text=item[0], values=item[1])
if __name__ == '__main__':
root = tk.Tk()
kwargs = {
'Soda': [
'Sprite',
'Mountain Dew',
'Coke'
],
'Numbers': [
5,
6,
7
]
}
SummaryTree(root, kwargs).pack()
root.mainloop()
由于某种原因,此代码仅在列表中插入第一个值。我不太确定我在这里缺少什么。
答案 0 :(得分:2)
根据ttk.Treeview
文档,列选项为:
列标识符列表,指定列数 和他们的名字
因此,如果您希望Treeview有3列名为1
,2
和3
,则应写入:
ttk.Treeview.__init__(self, parent, columns=[1, 2, 3], ...)