Как привязать клавишу ввода к функции в Tkinter
- Привязка события к функции
- Нажатие кнопки привязки к функции
- Привязываем нажатие клавиши к функции в методе Class Пример
В этом уроке мы расскажем, как привязать ключ Enter
к функции в Tkinter.
Привязка события к функции
Нажатие кнопки Enter
является событием, как и нажатие кнопки, и мы можем связать функции или методы с этим событием, чтобы заставить событие вызвать указанную функцию.
widget.bind(event, handler)
Если произойдет событие
, то оно автоматически спровоцирует срабатывание хендлера
.
Нажатие кнопки привязки к функции
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"
event
- это скрытый аргумент, передаваемый в функцию. Оно вызовет TypeError
, если не указать его во входном аргументе функции.
app.bind('<Return>', callback)
Привязываем функцию callback
к событию <Return>
, или, другими словами, к событию нажатия клавиши Enter
.
Привязываем нажатие клавиши к функции в методе Class Пример
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()
Реализация данного класса аналогична описанному выше методу.
Мы поместили атрибут keysym
объекта event
в показанную метку.
keysym
является ключевым символом события клавиатуры. Enter
- это Return
, как мы ввели выше.