Главная


54.3. Типы событий

Полный набор типов событий довольно велик, но многие из них не часто используются. Вот большинство из них, которые вам понадобятся:

Тип Имя Описание
36 Activate Виджет переходит из состояния неактивности в состояние активности. Это относится к изменениям в параметре state виджета, например, кнопка переходит из неактивного состояния (закрашена серым) в активное.
4 Button Пользователь нажал одну из кнопок мыши. В части detail указывается, какую именно кнопку. Для поддержки колеса мыши в Linux используйте Button-4 (прокрутка вверх) и Button-5 (прокрутка вниз). В Linux ваш обработчик привязки к колесу мыши будет различать прокрутку вверх и прокрутку вниз, исследуя поле .num экземпляра Event; см. раздел 54.6, "Написание обработчика: класс Event".
5 ButtonRelease Пользователь отпустил кнопку мыши. В большинстве случаев это событие лучше, чем событие Button, потому что если пользователь случайно нажмет на кнопку, он сможет убрать мышь с виджета, чтобы не вызвать событие.
22 Configure Пользователь изменил размер виджета, например, перетянув угол или сторону окна.
37 Deactivate Виджет переходит из состояния активности в состояние неактивности. Это относится к изменениям в параметре state виджета, например, радиокнопка переходит из активного состояния в неактивное (закрашивается серым цветом).
17 Destroy Виджет уничтожается.
7 Enter Пользователь переместил указатель мыши в видимую часть виджета. (Это отличается от нажатия клавиши Enter, которое является событием KeyPress для клавиши, название которой на самом деле 'return').
12 Expose Это событие происходит всякий раз, когда хотя бы часть вашего приложения или виджета становится видимой после того, как она была закрыта другим окном.
9 FocusIn Виджет получил фокус ввода. Это может произойти как в ответ на событие пользователя (например, при использовании клавиши табуляции для перемещения фокуса между виджетами), так и программно (например, ваша программа вызывает .focus_set() на виджете).
10 FocusOut Фокус ввода был перемещен из виджета. Как и в случае с FocusIn, пользователь может вызвать это событие, или ваша программа может вызвать его.
2 KeyPress Пользователь нажал клавишу на клавиатуре. В части detail указывается, какую именно клавишу. Это ключевое слово может быть сокращено до Key.
3 KeyRelease Пользователь отпустил клавишу.
8 Leave Пользователь вывел указатель мыши из виджета.
19 Map Виджет отображается, то есть становится видимым в приложении. Это происходит, например, при вызове метода .grid() виджета.
6 Motion Пользователь перемещает указатель мыши внутри виджета.
38 MouseWheel Пользователь переместил колесико мыши вверх или вниз. В настоящее время эта привязка работает в Windows и MacOS, но не в Linux. Для Windows и MacOS см. обсуждение поля .delta экземпляра Event в разделе 54.6, "Написание обработчика: класс Event". Для Linux см. примечание выше в графе Button этой таблицы.
18 Unmap Виджет отключается и больше не виден. Это происходит, например, при использовании метода .grid_remove() виджета.
15 Visibility Происходит, когда хотя бы часть окна приложения становится видимой на экране.

>> Модификаторы событий