Créer une interface graphique statique et peu engageante peut limiter l’interactivité de votre application.
Sans une interactivité adéquate, les utilisateurs peuvent rapidement perdre intérêt, ce qui affecte leur expérience globale.
Avec Tkinter, exploitez les événements pour enrichir vos interfaces en les rendant plus dynamiques et interactives. Découvrez comment dans cet article.
Créez des interfaces graphiques interactives avec Python et TKinter !

Création de Tkinter Label et Affichage GUI
Pour commencer, nous créons un Label avec des propriétés visuelles telles que la couleur de fond, la couleur du texte et la police. Ce Label sera affiché dans la fenêtre principale (root).
from tkinter import Tk, Label
root = Tk()
root.geometry("300x200")
lbl = Label(root,text="Ceci est un widget Label",bg="black",fg="white",font="Arial 20")
lbl.pack()
root.mainloop()
Lorsque vous exécutez ce code, un widget Label s’affiche dans une fenêtre, présentant un texte en blanc sur un fond noir. Comme il est montré dans la figure suivante :
Ce Label servira de base pour nos événements à venir.
Ajouter un Événement : Changer la Couleur au Passage de la Souris
L’événement « <Enter> » est un événement dans les interfaces graphiques (notamment avec Tkinter en Python) qui se déclenche lorsque le curseur de la souris entre dans la zone d’un widget, comme un label. Cet événement permet d’exécuter une action précise au moment où la souris survole le widget, ce qui peut être utilisé pour rendre l’interface plus interactive. Par exemple, en associant l’événement « <Enter> » à une fonction, nous pouvons modifier la couleur de fond du widget, offrant ainsi un effet visuel dynamique pour l’utilisateur.
Nous allons associer l’événement « <Enter> » au label pour modifier la couleur de fond lorsque la souris survole ce dernier. Cela rend l’interface plus interactive et visuelle.
from tkinter import Tk, Label
root = Tk()
root.geometry("300x200")
lbl = Label(root,text="Ceci est un widget Label",bg="black",fg="white",font="Arial 20")
lbl.pack()
defon_enter(event):
lbl.config(bg="red")
lbl.bind("", on_enter)
root.mainloop()
Dans cet exemple :
- <Enter> est utilisé pour détecter lorsque la souris entre dans la zone du label. Cela déclenche la fonction on_enter , qui change la couleur de fond du label en rouge.
- <Leave> est utilisé pour détecter lorsque la souris quitte la zone du label. Cela déclenche la fonction on_leave , qui restaure la couleur de fond d’origine.
Maintenant dès que la souris survole le label, la couleur change en rouge comme il est montré dans l’exemple suivant :
Cependant, il est nécessaire de restaurer la couleur d’origine lorsque la souris quitte la zone du widget.
Restaurer la Couleur d'Origine lorsque la Souris Quitte le Widget
L’événement <Leave> est un événement dans les interfaces graphiques (comme avec Tkinter en Python) qui se déclenche lorsque le curseur de la souris quitte la zone d’un widget, tel qu’un label. Cet événement permet d’exécuter une action spécifique lorsque la souris cesse de survoler le widget, ce qui est utile pour rétablir l’apparence initiale de l’interface.
Pour résoudre ce problème, nous ajoutons un événement <Leave> qui rétablit la couleur initiale lorsque la souris quitte le widget.
from tkinter import Tk, Label
root = Tk()
root.geometry("300x200")
lbl = Label(root,text="Ceci est un widget Label",bg="black",fg="white",font="Arial 20")
lbl.pack()
defon_enter(event):
lbl.config(bg="red")
lbl.bind("", on_enter)
defon_leave(event):
lbl.config(bg="black")
lbl.bind("", on_leave)
root.mainloop()
Dans cet exemple :
- <Enter> est utilisé pour détecter l’entrée de la souris dans la zone du label, déclenchant on_enter pour changer la couleur en rouge.
- <Leave> est utilisé pour détecter la sortie de la souris du label, déclenchant on_leave pour rétablir la couleur d’origine.
Grâce à ces événements, l’interface devient plus dynamique : la couleur change lorsque la souris survole le widget et est restaurée lorsqu’elle le quitte. Ainsi voici le résultat d’exécution de ce programme :
Gérer Événements Souris sur Tkinter Button
Ajouter un Bouton et Gérer les Événements de Clic de la Souris
L’événement <Button-1> est un événement dans les interfaces graphiques (comme Tkinter en Python) qui se déclenche lorsque l’utilisateur clique sur un widget avec le bouton gauche de la souris . Cet événement est couramment utilisé pour capturer des actions de clic sur des boutons et réagir en conséquence.
Nous allons maintenant ajouter un bouton et gérer l’événement de clic gauche sur celui-ci. À chaque clic, un message s’affiche sur le label, indiquant l’action effectuée.
from tkinter import Tk, Label, Button
# Créer la fenêtre principale
root = Tk()
# Créer un label
lbl = Label(root,text="Survolez-moi ou cliquez sur le bouton",font="Arial 16")
lbl.pack(pady=20)
# Créer un bouton
btn = Button(root,text="Cliquez-moi",font="Arial 20")
btn.pack(pady=20)
# Définir la fonction pour l'événement de clic gauche
defon_left_click(event):
lbl.config(text="Vous avez cliqué avec le bouton gauche")
# Associer l'événement au bouton
btn.bind("", on_left_click)
root.mainloop()
Dans ce code:
- <Button-1> est utilisé pour détecter un clic gauche sur le bouton. Lorsque cet événement se produit, la fonction on_left_click est déclenchée.
- on_left_click modifie le texte du label pour afficher un message indiquant que le bouton a été cliqué avec le bouton gauche.
Ainsi, quand l’utilisateur clique sur le bouton avec le bouton gauche de la souris, le texte du label change pour refléter cette interaction comme il est montré dans la figure suivante, ainsi cela rendant l’interface plus interactive.
Gérer les Événements de Double-Clic
De manière similaire aux événements de clic simple, nous pouvons gérer d’autres interactions de l’utilisateur, comme le double-clic et le clic droit , pour rendre l’interface plus interactive.
Voici un code qui montre comment capturer un événement de double-clic pour afficher un message sur le label.
from tkinter import Tk, Label, Button
# Créer la fenêtre principale
root = Tk()
# Créer un label
lbl = Label(root,text="Survolez-moi ou cliquez sur le bouton",font="Arial 16")
lbl.pack(pady=20)
# Créer un bouton
btn = Button(root,text="Cliquez-moi",font="Arial 20")
btn.pack(pady=20)
defon_double_click(event):
lbl.config(text="Vous avez double-cliqué sur le bouton")
btn.bind("", on_double_click)
root.mainloop()
Dans ce code:
- Événement<Double-1> :Cet événement est déclenché lorsqu’undouble-clic gaucheest effectué sur le bouton.
- Fonctionon_double_click(event) :Lorsqu’un double-clic gauche est détecté, cette fonction change le texte du label pour indiquer que le bouton a été double-cliqué.
En exécutant ce code, vous verrez le label réagir au double-clic, rendant l’interface plus interactive pour l’utilisateur.
Avantages des Événements Tkinter GUI
L’utilisation des événements dans les interfaces graphiques offre de nombreux avantages :
- Interactivité :Les utilisateurs peuvent interagir directement avec l’application, ce qui améliore l’expérience globale.
- Dynamisme :Les actions ne sont pas statiques. Elles réagissent aux actions de l’utilisateur, rendant l’interface plus engageante.
- Flexibilité :Vous pouvez personnaliser les réactions des widgets en fonction de différents événements (clic, survol, etc.), ce qui permet une personnalisation complète.
- Facilité de gestion :Tkinter permet de gérer une multitude d’événements simplement via la méthode bind(), facilitant la gestion des interactions sans avoir à coder manuellement chaque cas.
- Expérience Utilisateur :Un bon usage des événements améliore la fluidité et l’intuition de l’interface, rendant l’application plus agréable et facile à utiliser.
Bottom of Form
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
Comment créer un label avec Tkinter?
Comment changer la couleur d'un label au survol de la souris?
Comment gérer les clics de souris sur un bouton avec Tkinter?
Quels sont les avantages des événements dans Tkinter?
Comment utiliser Tkinter pour rendre une interface graphique dynamique?
Conclusion
Les événements dans Tkinter offrent une interactivité et un dynamisme essentiels pour une expérience utilisateur optimale. Quelle fonctionnalité pourriez-vous ajouter pour enrichir votre prochaine interface graphique?