Запомните также на будущее, что использование параметров command для перехвата генерируемых пользователем событий нажатия кнопки является лишь одним из способов регистрации обработчиков в библиотеке tkinter. На самом деле существуют различные способы перехвата событий в сценариях tkinter:
Параметр command кнопки
Как только что было показано, событие нажатия кнопки перехватывается путем передачи вызываемого объекта в параметре command виджета. То же относится к другим виджетам, похожим на кнопки, с которыми мы познакомимся в главе 8 (например, переключателям, флажкам и ползункам).
Параметры command меню
В последующих главах обзора библиотеки tkinter будет показано, что параметр command используется также для передачи обработчиков событий выбора пунктов меню.
Протоколы полос прокрутки
Виджеты полос прокрутки тоже регистрируют обработчики с помощью параметра command, но обладают особым протоколом событий, позволяющим им быть взаимно связанными с виджетом, для прокрутки которого они предназначены (например, окна списков, текстовые окна и холсты): перемещение ползунка на полосе прокрутки автоматически перемещает содержимое виджета и наоборот.
Обобщенные методы bind виджетов
Имеется возможность использовать более универсальный механизм метода bind для регистрации низкоуровневых обработчиков событий, таких как нажатия клавиш, перемещения и щелчки мышью и так далее. В отличие от обработчиков, зарегистрированных с помощью параметра command, обработчики, зарегистрированные методом bind, получают в качестве аргумента объект события (экземпляр класса Event из библиотеки tkinter), который предоставляет контекст события — виджет, к которому относится событие, экранные координаты и так далее.
Протоколы менеджера окон
Кроме того, сценарии могут перехватывать события менеджера окон (например, запрос на закрытие окна) путем внедрения в механизм метода protocol менеджера окон, который доступен для оконных объектов верхнего уровня. Например, установив обработчик события WM_DELETE_WINDOW, можно перехватить событие от кнопки закрытия окна.
Обработчики планируемых событий
Наконец, в сценарии, использующем библиотеку tkinter, можно также зарегистрировать обработчики, которые должны вызываться в особых случаях, например при срабатывании таймера, поступлении входных данных и холостом состоянии цикла событий. Сценарии могут также приостанавливаться и ожидать событий, связанных с изменением состояния окон и специальных переменных. С этими типами событий мы более подробно познакомимся в конце главы 9.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011