Comment lier la touche Entrée à une fonction dans Tkinter
- Lier un événement à une fonction
- Lier une pression de touche à une fonction
- Lier une pression de touche à une fonction dans la méthode Class Exemple
Dans ce tutoriel, nous allons présenter comment lier la touche Enter à une fonction dans Tkinter.
Lier un événement à une fonction
L’appui sur la touche Enter est un événement, comme le clic sur un bouton, et nous pourrions lier des fonctions ou des méthodes à cet événement pour que l’événement déclenche la fonction spécifiée.
widget.bind(event, handler)
Si event
se produit, il déclenchera automatiquement le handler
.
Lier une pression de touche à une fonction
import tkinter as tk
app = tk.Tk()
app.geometry("200x100")
def callback(event):
label["text"] = "You pressed Enter"
app.bind("<Return>", callback)
label = tk.Label(app, text="")
label.pack()
app.mainloop()
def callback(event):
label["text"] = "You pressed Enter"
L’event
est un argument caché passé à la fonction. Il provoquera une TypeError
si vous ne le donnez pas dans l’argument d’entrée de la fonction.
app.bind("<Return>", callback)
Nous lions la fonction callback
à l’événement <Return>
, ou en d’autres termes, à l’événement de pression de la touche Enter.
Lier une pression de touche à une fonction dans la méthode Class Exemple
import tkinter as tk
class app(tk.Frame):
def __init__(self):
self.root = tk.Tk()
self.root.geometry("300x200")
self.label = tk.Label(self.root, text="")
self.label.pack()
self.root.bind("<Return>", self.callback)
self.root.mainloop()
def callback(self, event):
self.label["text"] = "You pressed {}".format(event.keysym)
app()
Cette implémentation de classe est similaire à la méthode ci-dessus.
Nous mettons l’attribut keysym
de l’objet event
dans le label indiqué.
L’attribut keysym
est le symbole de la touche de l’événement clavier. Enter est Return
comme nous l’avons introduit ci-dessus.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook