Cómo vincular la tecla de entrada a una función en Tkinter
- Vincular un evento a una función
- Vincular la pulsación de una tecla a una función
- Vinculación de la pulsación de teclas a una función en el método Class Ejemplo
En este tutorial, introduciremos cómo vincular la tecla Enter a una función en Tkinter.
Vincular un evento a una función
La pulsación de la tecla Enter es un evento, como el clic de un botón, y podríamos vincular funciones o métodos a este evento para hacer que el evento dispare la función especificada.
widget.bind(event, handler)
Si el event
se produce, disparará el handler
automáticamente.
Vincular la pulsación de una tecla a una función
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"
El evento
es un argumento oculto que se pasa a la función. Levantará TypeError
si no lo das en el argumento de entrada de la función.
app.bind("<Return>", callback)
Vinculamos la función callback
al evento <Return>
, o en otras palabras, al evento de pulsación de la tecla Enter.
Vinculación de la pulsación de teclas a una función en el método Class Ejemplo
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()
Esta implementación de la clase es similar al método anterior.
Ponemos el atributo keysym
del objeto event
en la etiqueta mostrada.
keysym
es el símbolo de la tecla del evento de teclado. Enter es Return
, como hemos dicho antes.
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