Глава 17 · Проект: «Крестики-нолики»

Привязка событий — делаем приложения динамическими!

command — не единственный способ реагировать на действия пользователя: bind() открывает события любого рода.

В главе 16 кнопки реагировали на клик через параметр command — это самый частый, но не единственный способ связать код с действием пользователя. Привязка событий (.bind()) позволяет реагировать на что угодно: нажатие клавиши, движение мыши, наведение курсора.

privyazka_sobytij.py
import tkinter as tk

root = tk.Tk()
label = tk.Label(root, text="Нажмите любую клавишу", font=("Arial", 14))
label.pack(padx=20, pady=20)

def na_klavishu(event):
    label.config(text=f"Вы нажали: {event.keysym}")

root.bind("<Key>", na_klavishu)
root.mainloop()

Функция-обработчик события всегда принимает один параметр — event — объект с подробностями о произошедшем событии: какая клавиша нажата (event.keysym), где кликнула мышь, и так далее.

Пригодится в главе 19
Именно .bind() позволит змейке в главе 19 реагировать на нажатия клавиш со стрелками — тот же самый приём, только с другим типом события.
Практика в Jupyter Notebook
17-01-bind.ipynb · привязка событий клавиатуры
Открыть ноутбук →