我正在做一个程序来制作一个总余额,总共有 10 列。我正在尝试使用 Tkinter 的 Treeview() 函数,但它只显示了其中的 2 列。将如何展示所有内容?
这是一段代码:
def balance(self):
# Ventana de balance
self.balance_wind = Toplevel()
self.balance_wind.title('Balance de 8 columnas')
# Table
self.tree = ttk.Treeview(self.balance_wind, height=10, columns=10)
self.tree.grid(row=0, column=0)
self.tree.heading('#0', text='Numero', anchor=CENTER)
self.tree.heading('#1', text='Cuenta', anchor=CENTER)
self.tree.heading('#2', text='Debe', anchor=CENTER)
self.tree.heading('#3', text='Haber', anchor=CENTER)
self.tree.heading('#4', text='Deudor', anchor=CENTER)
self.tree.heading('#5', text='Acreedor', anchor=CENTER)
self.tree.heading('#6', text='Activo', anchor=CENTER)
self.tree.heading('#7', text='Pasivo', anchor=CENTER)
self.tree.heading('#8', text='Positivo', anchor=CENTER)
self.tree.heading('#9', text='Negativo', anchor=CENTER)
这是一个非常典型的错误,顺便说一下也很容易理解,参数
columns
不是用来表示你想要的列数TreeView
,而不是直接通过整数。相反,它需要一个字符串序列 (str
),每列都有标识符。标识符将在内部用于标识列,请记住,第一列始终具有“# 0”作为标识符,您添加的那些columns
将被添加到第一列。当 你做的事情是添加一个单独的列,
columns=10
除了作为标识符,结果,只有两列。"#0"
"3"
如果要使用 column
#0
,则需要传递一个包含九个字符串的列表作为标识符,这将构成一共有十列。如果要删除第一列,可以改为执行以下操作: