Rozdział 17 · Wydarzenia głębiej
command vs bind — co wybrać
Nie „bind istnieje, więc używamy go wszędzie”
command= lub bind() — jak wybierać
Co wybrać?
Musisz wykonać główną akcję Button
→
command=
Potrzebuję współrzędnych myszy
→
bind("<Motion>", ...)
Trzeba wiedzieć, który dokładnie klawisz został naciśnięty
→
bind("<Key>", ...)
Potrzebna jest reakcja na najechanie kursorem (bez kliknięcia)
→
bind("<Enter>"/"<Leave>", ...)
Widżet nie dostarcza żadnych command (np. Label, Frame)
→
bind()
Domyślnie nie zastępuj Button.command bind(<Button-1>'', ...)
To jest zasada zawodowa.
command= Button jest aktywacją semantyczną: opisuje główną akcję przycisku, a wbudowane zachowanie klasy Button decyduje, które metody aktywacji wywołują polecenie. Konkretne klucze mogą się różnić od jednego tk.Button oraz ttk.Button, a także między platformami i motywami. Gołe snapowanie <Button-1> opisuje tylko konkretne zdarzenie myszy i omija działanie semantyczne widżetu. Zastąpienie command bind „tylko dlatego, że możesz”Jak będzie to rozmieszczone w grze
Trzy zadania — trzy różne narzędzia
Ruch po polu
command= w Button
główna akcja widgetu
Hover - Zapowiedź
bind(<Enter>/<Leave>)
nie ma gotowego command na to
Klawisze 1–9 / R
bind(<Key>) na root
nie jest przypisane do jednego widgetu
Praktyka: command vs bind – co wybrać
Automatyczne sprawdzanie – wybierz odpowiednie narzędzie do zestawu scenariuszy