A ttk.Treeview
без части дерева можно использовать для отображения таблицы:
tree = ttk.Treeview(master, columns=('Position', 'Name', 'Score'), show='headings')
Затем установите метки столбцов с помощью
tree.heading(<column>, text="Label")
и добавьте строки с помощью
tree.insert("", "end", values=(<position>, <name>, <score>))
Первый аргумент - это родительский элемент, поскольку вам нужна таблица, все элементы имеют одного и того же родителя, root ""
. Второй аргумент - это позиция нового элемента в дереве.
Полный пример:
import tkinter as tk
from tkinter import ttk
import sqlite3
def show():
cr=sqlite3.connect('database_name')
c.cursor()
c.execute("select * from table_name")
tempList = c.fetchall()
tempList.sort(key=lambda e: e[1], reverse=True)
for i, (name, score) in enumerate(tempList, start=1):
listBox.insert("", "end", values=(i, name, score))
scores = tk.Tk()
label = tk.Label(scores, text="High Scores", font=("Arial",30)).grid(row=0, columnspan=3)
# create Treeview with 3 columns
cols = ('Position', 'Name', 'Score')
listBox = ttk.Treeview(scores, columns=cols, show='headings')
# set column headings
for col in cols:
listBox.heading(col, text=col)
listBox.grid(row=1, column=0, columnspan=2)
showScores = tk.Button(scores, text="Show scores", width=15, command=show).grid(row=4, column=0)
closeButton = tk.Button(scores, text="Close", width=15, command=exit).grid(row=4, column=1)
scores.mainloop()
You can find more details about the Treeview
widget здесь .