La création d’interfaces utilisateur interactives est essentielle pour les applications modernes.
Sans gestion efficace des événements de la souris, les applications peuvent sembler rigides et peu intuitives.
Utiliser Tkinter pour capturer et gérer les événements de la souris permet de développer des interfaces dynamiques et réactives.
Créez des interfaces graphiques interactives avec Python et TKinter !
Événements souris Tkinter : guide complet
En plus des événements clavier, Tkinter permet de capturer les événements de la souris, tels que les clics et les mouvements du curseur. Voici un ensemble d’événements que vous pouvez utiliser avec la souris dans un Canvas :
Capture de clics et interactions Tkinter
Tkinter offre une flexibilité étendue pour capturer et gérer les événements de la souris, permettant de créer des interfaces interactives et réactives. Voici un aperçu pour les différents événements de la souris et exemples de leur utilisation :
Clic gauche
<Button-1> est un événement qui capture un clic gauche de la souris. Voici un exemple de son utilisation :
from tkinter import *
root = Tk()
root.title("Exemple : Clic gauche")
root.geometry('400x300')
var_message = StringVar()
label_message = Label(root,textvariable=var_message,font=("Arial", 12))
label_message.pack()
canvas = Canvas(root,bg="lightgrey",width=300,height=200)
canvas.pack()
defshow_click(event):
var_message.set("Vous avez cliqué sur le bouton gauche de la souris.")
canvas.bind("", show_click)
root.mainloop()
Lorsqu’un clic gauche est effectué sur le Canvas, le message “Vous avez cliqué sur le bouton gauche de la souris.” s’affiche comme il est montré dans la figure suivante :
Clic du bouton central
<Button-2> est un évènement qui capture un clic sur le bouton central (roulette de la souris). Voici un exemple de son utilisation :
from tkinter import *
root = Tk()
root.title("Exemple : Clic bouton central")
root.geometry('400x300')
var_message = StringVar()
label_message = Label(root,textvariable=var_message,font=("Arial", 12))
label_message.pack()
canvas = Canvas(root,bg="lightgrey",width=300,height=200)
canvas.pack()
defshow_click(event):
var_message.set("Vous avez cliqué sur le bouton central de la souris.")
canvas.bind("", show_click)
root.mainloop()
Lorsqu’un clic sur le bouton central est détecté, le message “Vous avez cliqué sur le bouton central de la souris.” est affiché. Voici le résultat d’exécution de ce code :
Clic droit
<Button-3> est évènement qui capture un clic droit de la souris. Ainsi voici un simple exemple de son utilisation :
from tkinter import *
root = Tk()
root.title("Exemple : Clic droit")
root.geometry('400x300')
var_message = StringVar()
label_message = Label(root,textvariable=var_message,font=("Arial", 12))
label_message.pack()
canvas = Canvas(root,bg="lightgrey",width=300,height=200)
canvas.pack()
defshow_click(event):
var_message.set("Vous avez cliqué sur le bouton droit de la souris.")
canvas.bind("", show_click)
root.mainloop()
Un clic droit sur le Canvas affichera le message “Vous avez cliqué sur le bouton droit de la souris.”Comme il est montré dans la figure suivante :
Double clic gauche
<Double-Button-1> est un évènement qui capture un double clic gauche de la souris. Voici un exemple d’utilisation de cet évènement:
from tkinter import *
root = Tk()
root.title("Exemple : Double clic gauche")
root.geometry('400x300')
var_message = StringVar()
label_message = Label(root,textvariable=var_message,font=("Arial", 12))
label_message.pack()
canvas = Canvas(root,bg="lightgrey",width=300,height=200)
canvas.pack()
defshow_click(event):
var_message.set("Vous avez effectué un double clic gauche.")
canvas.bind("", show_click)
root.mainloop()
Lors d’un double clic gauche, le message “Vous avez effectué un double clic gauche.” est présenté comme il est affiché dans l’exemple suivant :
Déplacement avec bouton gauche maintenu
<B1-Motion> est un évènement qui capture le mouvement de la souris lorsque le bouton gauche est maintenu enfoncé. Ainsi voici un exemple de son utilisation :
from tkinter import *
root = Tk()
root.title("Exemple : Déplacement avec bouton gauche")
root.geometry('400x300')
var_message = StringVar()
label_message = Label(root,textvariable=var_message,font=("Arial", 12))
label_message.pack()
canvas = Canvas(root,bg="lightgrey",width=300,height=200)
canvas.pack()
defdrag_left(event):
var_message.set(f"Déplacement : x = {event.x}, y = {event.y}")
canvas.bind("", drag_left)
root.mainloop()
En déplaçant la souris sur le Canvas tout en maintenant le bouton gauche, les coordonnées “x = … , y = …” s’affichent. Voici le résultat de son exécution :
Déplacement avec bouton droit maintenu
<B3-Motion>est l’évènement qui capture le mouvement de la souris lorsque le bouton droit est maintenu enfoncé. Voici un exemple de son utilisation :
from tkinter import *
root = Tk()
root.title("Exemple : Déplacement avec bouton droit")
root.geometry('400x300')
var_message = StringVar()
label_message = Label(root,textvariable=var_message,font=("Arial", 12))
label_message.pack()
canvas = Canvas(root,bg="lightgrey",width=300,height=200)
canvas.pack()
defdrag_right(event):
var_message.set(f"Déplacement : x = {event.x}, y = {event.y}")
canvas.bind("", drag_right)
root.mainloop()
Lors du déplacement de la souris avec le bouton droit maintenu enfoncé, les coordonnées s’affichent à l’écran. Voici l’exécution de ce code :
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 gérer un clic gauche dans Tkinter ?
Comment détecter un double clic dans Tkinter ?
Comment capturer un clic droit avec Tkinter ?
Comment suivre le mouvement de la souris dans Tkinter ?
Quels sont les avantages de gérer les événements de la souris ?
Conclusion
La gestion des événements de la souris dans Tkinter vous permet de créer des interfaces utilisateur riches et interactives. Quel événement de la souris pourriez-vous intégrer dans votre prochain projet pour améliorer l’expérience utilisateur ?