Event Binding – Dynamiczne tworzenie aplikacji!
command nie jest jedynym sposobem reagowania na działania użytkownika: bind() daje dostęp do wszelkiego rodzaju wydarzeń.
W rozdziale 16 przyciski reagowały na kliknięcie poprzez parametr command
jest najczęstszym, ale nie jedynym sposobem powiązania kodu z akcją użytkownika.
Wiązanie zdarzeń (.bind()) pozwala reagować
na cokolwiek: naciśnięcie klawisza, ruch myszy, najechanie kursorem.
import tkinter as tk
root = tk.Tk()
label = tk.Label(root, text=„Naciśnij dowolny klawisz”, font=("Arial", 14))
label.pack(padx=20, pady=20)
def na_klavishu(event):
label.config(text=f"Kliknąłeś: {event.keysym}")
root.bind("<Key>", na_klavishu)
root.mainloop()
Gdy callback zarejestrowana przez .bind(), Tkinter
przekazuje obiekt do niego Event szczegóły dotyczące wydarzenia:
który klawisz jest naciśnięty (event.keysym), gdzie klikała mysz i tak dalej
dalej. Ta zasada dotyczy .bind(): callback przekazany do
command= (jak w rozdziale 16) zwykle nazywa się bez Event dopełnienia —
Rozdział 17.8 szczegółowo wyjaśni różnicę.
screen.listen() oraz screen.onkeypress(), — ale zasada jest ta sama.