我一生都找不到任何帖子或文档来解释为什么 Treeview 标题与其余数据相差一列。
甚至我发现的文档在示例中也显示了这个问题,但没有描述这个问题。
import tkinter as tk
import tkinter.ttk as ttk
import random
n, m = 40, 10
table = []
for i in range(n):
line = []
# line.append('')
# This adds a blank string to start of row data to off set the data.
# It is my current work around but does not look great.
for j in range(m):
line.append(random.randint(0, 999))
table.append(line)
class Demo(tk.Tk):
def __init__(self):
super().__init__()
tree = ttk.Treeview(self)
tree.pack()
for i in range(n):
tree.insert('', 'end', text=table[i][0], values=table[i][1:])
tree['columns'] = list(range(m - 1))
headings = list('ABCDEFGHI')
for j in range(m - 1):
tree.column(j, width=50, anchor='e')
tree.heading(j, text=headings[j])
if __name__ == '__main__':
Demo().mainloop()
如您所见,标题相差一列。我无法弄清楚为什么会这样或如何正确修复它。
我确实管理了一个糟糕的解决方法,将一个空字符串附加到行数据的开头,以便它与正确的标题对齐,但这不是解决这个问题的正确或最佳方法。
我在这里错过了什么吗?这对 Treeview 来说是正常的吗?