Шаг 11.
Библиотека Tkinter.
Обработка событий. Перехват событий
На этом шаге мы рассмотрим методы, используемые для перехвата событий.
Есть возможность установить перехват событий, при котором какой-либо компонент будет обрабатывать все события всех типов, что возникают во всех без исключения компонентах приложения,
включая и контейнеры. Для этого компоненты библиотеки Tkinter поддерживают следующие методы:
- grab_set () - заставляет текущий компонент перехватывать все события всех типов, что возникают в приложении. Если ранее перехват был задан у другого компонента, он отменяется,
поскольку только один компонент может перехватывать события:
self.btnAll.grab_set()
self.btnAll.bind("<Button>", self.button_handler)
Теперь все без исключения события, возникающие в компонентах приложения, будут перехватываться кнопкой btnAll. Если возникшее событие относится к типу Button, будет вызван
метод-обработчик button_handler().
Метод grab_set() задает обычный, или локальный, перехват событий, при котором компонентом перехватываются только события, возникающие в текущем приложении;
- grab_set_global () - то же самое, что grab_set(), но устанавливает перехват событий, возникающих во всех запущенных в текущий момент приложениях (глобальный перехват
событий);
Метод grab_set_global() может нарушить нормальное функционирование других приложений, так что его следует использовать с осторожностью.
- grab_release () - отменяет перехват событий, ранее заданный для текущего компонента;
- grab_current () - возвращает строковый идентификатор перехвата событий, если таковой был задан у текущего компонента. Если перехват событий не был задан, возвращает None;
- grab_status() - возвращает строку "local", если для текущего компонента был задан обычный перехват событий, и "global", если был указан глобальный перехват.
На следующем шаге мы рассмотрим указание опций у компонентов.
Предыдущий шаг
Содержание
Следующий шаг