Как привязать клавишу ввода к функции в Tkinter

  1. Привязка события к функции
  2. Нажатие кнопки привязки к функции
  3. Привязываем нажатие клавиши к функции в методе 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, как мы ввели выше.

Tkinter привязывает клавишу ввода к функции

comments powered by Disqus