Le widget Treeview nous offre la possibilité de modifier l'apparence générale du tableau, de sa ligne d'entête et des colonnes.
Voici un exemple de tableau de données affiché à l'aide d'un Treeview auquel aucun style n'a été appliqué.
tableau = Treeview(fenetre, columns=('code', 'description'))
tableau.heading('code', text='Code')
tableau.heading('description', text='Description')
...
for enreg in resultat:
tableau.insert('', 'end', iid=enreg[0], values=(enreg[1], enreg[2]))
Dans un Treeview, la première colonne à gauche permet d'afficher une icône qui pourra développer ou réduire un noeud (afficher ou masquer les enfants d'un item).
Quand on n'utilise pas de hiérarchie entre les items, comme c'est le cas lorsqu'on utilise le Treeview pour afficher les données d'une table, cette colonne n'a pas sa raison d'être.
Il est possible de la faire disparaître comme suit :
tableau['show'] = 'headings'
La première chose qu'on remarque lorsqu'un Treeview affiche plusieurs lignes de données, c'est qu'il manque une barre de défilement.
Pour ajouter une barre de défilement, il faut travailler avec le widget Scrollbar.
Ex :
scrollbar = Scrollbar(fenetre)
scrollbar.pack(side=RIGHT, fill=Y)
tableau = Treeview(fenetre, columns=('code', 'description'), yscrollcommand=scrollbar.set)
...
tableau.pack(padx=10, pady=10)
scrollbar.config(command=tableau.yview)
Comme tous les widgets du paquet tkinter, il est possible de styliser un Treeview.
On utilisera l'instruction Style().configure(). Il faut lui passer comme premier paramètre le type de widget à styliser (ici : Treeview). On fournit ensuite une liste de paires clé=valeur pour chacune des configurations désirées.
Parmi les configurations possibles, notons :
Ex :
Style().configure("Treeview", background="beige", foreground="black")
La fonction heading() permet de spécifier ce qui doit apparaître dans l'entête d'une colonne.
On spécifiera :
Ex :
tableau = Treeview(fenetre, columns=('code', 'description'))
...
tableau.heading('code', text='Code', anchor='center')
tableau.heading('description', text='Description', anchor='w')
Pour ce qui est de l'apparence, on pourra la modifier à l'aide de Style().configure(). Cette fois, le premier paramètre sera Treeview.Heading.
Parmi les configurations possibles, notons :
Ex :
Style().configure("Treeview.Heading", foreground='gray', font=('Helvetica', 12), padding=5)
La fonction column() permet de spécifier l'apparence d'une colonne.
On spécifiera :
Ex :
tableau = Treeview(fenetre, columns=('code', 'description'))
...
tableau.column('code', width=60, anchor='center')
▼Publicité