Глава 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 · привязка событий клавиатуры