1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
import ttkbootstrap as ttk
from ttkbootstrap.widgets.tableview import Tableview
from ttkbootstrap.constants import *
app = ttk.Window(title="Tableview stylée", themename="solar")
# ------------------------------------------------
# STYLE HEADING
# ------------------------------------------------
style = ttk.Style()
style.configure(
"Treeview.Heading",
font=("Arial", 12, "bold", "underline", "italic"),
)
style.configure(
"Treeview",
font=("Arial", 8, "bold"),
)
# ------------------------------------------------
# DONNÉES
# ------------------------------------------------
coldata = ["Nom", "Prénom", "Age"]
rowdata = [
("Legros", "Jean", 12),
("Smith", "Alice", 45),
("Johnson", "Bob", 36),
]
# ------------------------------------------------
# TABLEVIEW
# ------------------------------------------------
dt = Tableview(
master=app,
coldata=coldata,
rowdata=rowdata,
paginated=True,
searchable=True,
disable_right_click=True,
)
dt.pack(fill=BOTH, expand=YES)
tree = dt.view
# Redimensionner toutes les colonnes proportionnellement
def resize_columns(event):
total_width = tree.winfo_width()
n_cols = len(tree["columns"])
width = int(total_width / n_cols)
for col in tree["columns"]:
tree.column(col, width=width)
# Binder à lévénement de redimensionnement de la fenêtre
tree.bind("<Configure>", resize_columns)
for col in tree["columns"]:
tree.column(col, anchor="center") # contenu des cellules
tree.heading(col, anchor="center") # texte du header
app.mainloop() |
Partager