1. A propos du module tkinter.ttk
Le module tkinter.ttk est une extension de la bibliothèque Tkinter qui fournit un accès au jeu de style pour les widgets Tk.
Les widgets dans tkinter sont hautement et facilement configurables. Vous avez un contrôle presque total sur leur apparence: largeurs de bordure, polices, images, couleurs, etc. Mais avec un style pauvre et très basique.
Les widgets ttk utilisent des styles pour définir une apparence et un look agréable. Il faut donc un peu plus de travail si vous souhaitez un bouton non standard. Les widgets ttk sont également un peu sous-documentés.
En règle générale, les widgets à thème ttk vous donneront une application plus "native", mais aux dépens d'une perte de configurabilité.
Il est conseillé d'utiliser les widgets ttk si vous voulez que votre interface graphique apparaisse agréable et un peu plus moderne, et les widgets tkinter si vous avez besoin d'un peu plus de configurabilité. Vous pouvez les utiliser tous les deux dans la même application.
2. Usage du module tkinter.ttk
Afin de pouvoir utiliser le module ttkinter.ttk, il faut préalablement l'importer en même temps que la bibliothèque Tkinter:
1 2 3 |
from tkinter import ttk from tkinter import * from tkinter.ttk import * |
3. Usage de tkinter.ttk Button, Label & Entry
Afin de pouvoir utiliser le style du module ttk, il faut au préalable créer un style en appelant la méthode style() de la classe ttk:
1 2 |
style = ttk.Style() style.configure(...) |
Exemple. Création d'un ttk style pour un bouton
1 2 |
style = ttk.Style() style.configure("BW.TButton", foreground="blue", background="red") |
Exemple complet
1 2 3 4 5 6 7 8 9 |
from tkinter import ttk from tkinter import * from tkinter.ttk import * root = Tk() style = ttk.Style() style.configure("BW.TButton", foreground="blue", background="red") b = ttk.Button(text = "Crmef Oujda", style="BW.TButton") b.pack() root.mainloop() |
Ce qui affiche à l'exécution:
Exemple. Style ttk pour un label
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# coding: utf-8 from tkinter import ttk from tkinter import * from tkinter.ttk import * root = Tk() root.geometry("300x200") # définir le style style = ttk.Style() style.configure("BW.TLabel", foreground="blue", background="white") # Label avec un style BW.TLabel L = ttk.Label(root , text ="Label design avec ttk", style = "BW.TLabel") L.pack() root.mainloop() |
Ce qui donne après exécution:
Younes Derfoufi
CRMEF OUJDA