Я не могу в жизни найти какой-либо пост или документацию, объясняющую, почему заголовок Treeview отличается на один столбец от остальных данных.
Даже документацию я found показывает эту проблему в примере, но не описывает проблему.
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?
f'#{j}'
, вероятно, будет тем, что мне нужно. Я буду работать в этот понедельник, когда вернусь на работу. Первоначально я выполнял всю свою работу, используя метки, и все работало нормально, но при добавлении нескольких сотен строк и более 30 столбцов это начало замедлять работу, поэтому мне пришлось переключиться на древовидную структуру. 01.05.2021pandas.DataFrame
, вы можете использовать pandastable. Он использовался для создания DataExplorer — есть изображения, чтобы увидеть, что вы можете создать. сpandastable
01.05.2021pandastable
построен с использованиемtkinter
специально для использования сtkinter
- у меня есть примеры в моем блоге Примеры Tkinter PandasTable, поскольку официальная документация содержит только базовые примеры в Примеры кода< /а> 02.05.2021