Créer des interfaces graphiques attrayantes avec Tkinter peut être un défi.
Les widgets standard de Tkinter manquent souvent d’attrait visuel, ce qui peut nuire à l’expérience utilisateur.
Découvrez ttk, un module qui enrichit Tkinter avec des widgets modernes et personnalisables, transformant vos interfaces.
Créez des interfaces graphiques interactives avec Python et TKinter !

Explorer ttk dans Tkinter Python
ttk (Themed Tkinter) est un module complémentaire de la bibliothèque graphique Tkinter, qui permet de créer des widgets supplémentaires et plus sophistiqués. Il améliore également l’apparence des widgets en fonction du système d’exploitation utilisé, offrant ainsi une interface utilisateur plus moderne et cohérente.
Utilisation de ttk
L’utilisation de ttk présente plusieurs bénéfices, notamment :
- Apparence améliorée :Les widgets ttk adoptent le style natif du système d’exploitation, ce qui les rend plus esthétiques et intuitifs pour les utilisateurs.
- Widgets supplémentaires :ttk propose des widgets avancés non disponibles dans le Tkinter standard, comme Combobox, Treeview, Progressbar, etc.
- Personnalisation :Il est possible de personnaliser davantage les widgets ttk avec des thèmes et des styles.
Widgets disponibles dans ttk et Tkinter
Pour utiliser ttk, vous devez l’importer en complément de Tkinter :
from tkinter import *
from tkinter import ttk
Certains widgets sont disponibles à la fois dans Tkinter et ttk, mais avec des différences notables en termes d’apparence et de fonctionnalités. Voici quelques exemples :
Pour mieux visualiser la différence entre les widgets Tkinter standard et les widgets ttk, prenons l’exemple d’un bouton. En utilisant le widget ttk.Button , nous pouvons observer les variations de style et de comportement par rapport au bouton traditionnel de Tkinter.
from tkinter import *
from tkinter import ttk
root = Tk()
root.title("Exemple de ttk.Button")
root.geometry("300x200")
# Bouton Tkinter standard
btn_tk = Button(root,text="Bouton Tkinter")
btn_tk.pack(pady=10)
# Bouton ttk
btn_ttk = ttk.Button(root,text="Bouton ttk")
btn_ttk.pack(pady=10)
root.mainloop()
En exécutant ce code, vous remarquerez que le bouton ttk a une apparence plus moderne comparée au bouton standard de Tkinter. Cette différence est particulièrement visible sur différents systèmes d’exploitation.
Guide ttk Combobox en Tkinter
La ttk.Combobox de Tkinter est un widget utile pour offrir une liste déroulante d’options à l’utilisateur. Ce widget permet non seulement de sélectionner un élément parmi une liste d’options, mais offre aussi des possibilités d’interaction via des fonctions que vous pouvez créer. Voici une explication des différentes fonctions couramment utilisées pour manipuler une Combobox, Voici un exemple simple d’utilisation de la ttk.Combobox dans Tkinter, qui propose une liste déroulante avec plusieurs options.
from tkinter import *
from tkinter import ttk
# Initialisation de la fenêtre principale
root = Tk()
root.title("Exemple de Combobox")
root.geometry("300x200")
# Liste des options pour la Combobox
options = ["France", "Allemagne", "Espagne", "Italie"]
# Initialisation de la Combobox
combo = ttk.Combobox(root,values=options)
combo.current(0)# Sélectionne par défaut la première option ("France")
combo.pack(pady=20)
# Boucle principale Tkinter
root.mainloop()
Ce code illustre la manière de créer une ttk.Combobox simple avec un ensemble de choix prédéfinis. Voici le résultat obtenue après l’exécution de ce code :
La méthode get()
La méthode get() est utilisée pour récupérer l’option actuellement sélectionnée dans une ttk.Combobox . Elle renvoie la valeur sélectionnée sous forme de chaîne de caractères, ce qui permet de savoir quel élément a été choisi par l’utilisateur. Voici un exemple de son utilisation :
defafficher_selection():
print(combo.get())
Dans cet exemple, combo.get() renvoie l’élément sélectionné dans la combobox, et cet élément est affiché dans la console avec print() .
La méthode current()
La méthode current() dans une ttk.Combobox permet d’obtenir l’index de l’élément actuellement sélectionné. Cela est utile lorsqu’on souhaite manipuler directement la position de l’élément dans la liste des options. Voici un exemple de son utilisation pour récupérer l’index de l’élément sélectionné :
selection = combo.current()
print("Index de la sélection actuelle:", selection)
Dans cet exemple, combo.current() renvoie l’index de l’élément actuellement sélectionné dans la combobox, et cet index est affiché via la console.
La méthode values
La méthode values permet de récupérer ou définir la liste des valeurs d’une ttk.Combobox . Pour ajouter un nouvel élément à la liste, il faut d’abord convertir cette liste en une liste Python classique, puis la modifier avant de la réassigner à la combobox. Voici un exemple d’ajout d’un nouvel élément à la liste des valeurs :
defajouter_element():
options_list =list(combo["values"])# Convertit les valeurs en liste modifiable
options_list.append("Belgique")# Ajoute un nouvel élément
combo["values"] = options_list# Met à jour les valeurs dans la combobox
Dans cet exemple, la méthode values est utilisée pour obtenir et mettre à jour la liste des options disponibles dans la combobox.
Exemple général
L’exemple ci-dessous combine l’utilisation des trois méthodes avec une ttk.Combobox . Le programme crée une interface avec une combobox initialisée avec quatre options, ainsi que trois boutons permettant d’afficher l’option sélectionnée, de supprimer l’élément choisi, et d’ajouter une nouvelle option.
from tkinter import *
from tkinter import ttk
# Fonction pour afficher la sélection actuelle
defafficher_selection():
print(combo.get())
# Fonction pour supprimer l'élément sélectionné
defsupprimer_selection():
selection = combo.current()# Récupère l'index de l'élément sélectionné
options_list =list(combo["values"])# Convertit les valeurs en liste Python
if selection >= 0:
options_list.pop(selection)# Supprime l'élément sélectionné
combo["values"] = options_list# Mets à jour les valeurs dans la combobox
combo.current(0)# Réinitialise la sélection à la première option
defajouter_element():
options_list =list(combo["values"])# Convertit les valeurs en liste
options_list.append("Belgique")# Ajoute un nouvel élément
combo["values"] = options_list# Mets à jour les valeurs
# Initialisation de la fenêtre principale
root = Tk()
root.title("Exemple de ttk.Combobox")
root.geometry("400x300")
# Liste des options pour la Combobox
options = ["France", "Allemagne", "Espagne", "Italie"]
# Initialisation de la Combobox
combo = ttk.Combobox(root,values=options)
combo.current(0)# Sélectionne la première option par défaut
combo.pack(pady=20)
# Bouton pour afficher la sélection
btn_afficher = Button(root,text="Afficher la sélection",command=afficher_selection)
btn_afficher.pack(pady=5)
# Bouton pour supprimer l'élément sélectionné
btn_supprimer = Button(root,text="Supprimer la sélection",command=supprimer_selection)
btn_supprimer.pack(pady=5)
# Bouton pour ajouter un élément à la liste
btn_ajouter = Button(root,text="Ajouter 'Belgique'",command=ajouter_element)
btn_ajouter.pack(pady=5)
# Boucle principale Tkinter
root.mainloop()
Widgets ttk : Amélioration esthétique
Créer des interfaces modernes avec ttk
Interactivité avancée des widgets ttk
Personnalisation des widgets ttk
Personnalisation des widgets ttk
Ce code illustre comment manipuler une `ttk.Combobox` avec des opérations de base comme l’affichage, la suppression et l’ajout d’éléments. Ces fonctionnalités offrent une grande flexibilité pour gérer dynamiquement les options présentées à l’utilisateur. Voici un exemple d’utilisation de ce programme :
Lors de l’exécution du programme, la Combobox affiche initialement plusieurs options telles que « France » et « Allemagne ». Lorsque vous cliquez sur le premier bouton (« Afficher la sélection »), la valeur actuellement sélectionnée dans la Combobox est affichée dans la console. Par exemple, si « France » était sélectionnée, « France » apparaîtra dans la console.
En cliquant sur le deuxième bouton (« Supprimer la sélection »), l’option sélectionnée est supprimée de la Combobox. Si « France » est sélectionnée, elle sera retirée de la liste des options, et la Combobox se réinitialisera à la première option restante.
Le troisième bouton (« Ajouter ‘Belgique' ») permet d’ajouter une nouvelle option, « Belgique », à la liste des choix disponibles dans la Combobox. Une fois ajouté, l’utilisateur pourra sélectionner cette nouvelle option.
Ainsi, le code permet d’interagir dynamiquement avec la liste déroulante en affichant, supprimant et ajoutant des éléments au besoin.
Personnalisation des widgets ttk
Personnalisation des widgets ttk
Les widgets ttk dans Tkinter offrent la possibilité de personnaliser leur apparence via des styles et des thèmes. Ci-dessous, vous trouverez les différentes méthodes pour personnaliser ces widgets, séparées pour une meilleure compréhension.
Création d'un style personnalisé
La première étape dans la personnalisation d’un widget ttk est la création d’un style. Cela se fait en utilisant la classe ttk.Style() et en configurant les paramètres souhaités.
style = ttk.Style()
style.configure("Custom.TButton",
foreground="blue",
background="lightgray",
font=("Helvetica", 12, "bold"))
Avec :
- foreground :Définit la couleur du texte. Dans cet exemple, le texte est bleu.
- background :Définit la couleur de fond du bouton. Ici, il est gris clair.
- font :Spécifie la police utilisée pour le texte. Dans cet exemple, la police est « Helvetica », de taille 12, et en gras.
Application d'un style à un widget ttk
Une fois que le style est créé, il peut être appliqué à un widget ttk spécifique en passant le nom du style dans le paramètre style lors de l’initialisation du widget.
btn = ttk.Button(root,text="Bouton Personnalisé",style="Custom.TButton")
Ici, le bouton ttk.Button utilise le style » Custom.TButton » que nous avons défini, ce qui modifie son apparence en fonction des paramètres définis (couleur du texte, couleur de fond, police).
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Qu'est-ce que ttk dans Tkinter et pourquoi l'utiliser ?
Comment personnaliser les widgets ttk ?
Quelle est la différence entre widgets Tkinter et ttk ?
Comment utiliser ttk.Combobox dans une application Tkinter ?
Quelles méthodes utiliser avec ttk.Combobox ?
Conclusion
En maîtrisant l’utilisation des widgets ttk, vous pouvez transformer vos interfaces Tkinter en expériences utilisateur modernes et intuitives. Quelles autres fonctionnalités de ttk aimeriez-vous explorer pour enrichir vos projets ?