Como ligar a chave Enter a uma função no Tkinter
- Ligar evento a uma função
- Tecla Bind pressionada para uma função
- Tecla Bind pressionada para uma função no método Class Exemplo
Neste tutorial, vamos introduzir como ligar a tecla Enter a uma função em Tkinter.
Ligar evento a uma função
A tecla Enter é um evento, como clicar no botão, e podemos ligar funções ou métodos a este evento para fazer o evento acionar a função especificada.
widget.bind(event, handler)
Se o evento
ocorrer, ele irá acionar o handler
automaticamente.
Tecla Bind pressionada para uma função
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"
O evento
é um argumento oculto passado para a função. Ele irá levantar o TypeError
se você não o der no argumento de entrada da função.
app.bind("<Return>", callback)
Nós ligamos a função callback
ao evento <Return>
, ou em outras palavras, Enter pressionando a tecla evento.
Tecla Bind pressionada para uma função no método Class Exemplo
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()
A implementação desta classe é semelhante ao método acima.
Nós colocamos o atributo keysym
do objeto event
na etiqueta mostrada.
O keysym
é o símbolo chave do evento do teclado. Enter é Return
como nós introduzimos acima.
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