Другие события, доступные с помощью метода bind

drugie sobytiya dostupnye s pomoshhju metoda bind Экскурсия по tkinter, часть 1

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

     <ButtonRelease> генерируется при отпускании кнопки мыши (событие <ButtonPress> генерируется, когда кнопка нажимается).

     <Motion> генерируется при перемещении указателя мыши.

     Обработчики <Enter> и <Leave> генерируются в момент входа и выхода указателя мыши из области окна (полезно для автоматического выделения виджета).

     <Configure> генерируется при изменении размеров окна, его положения и так далее (например, новые размеры окна содержатся в атрибутах width и height объекта события). Мы будем использовать это событие для масштабирования содержимого окна при изменении его размеров в примере PyClock, в главе 11.

     <Destroy> генерируется при уничтожении виджета окна (и отличается от механизма protocol менеджера окон, реализованного для кнопки закрытия). Поскольку это событие имеет непосредственное отношение к методам quit и destroy виджетов, я расскажу о нем более подробно далее в этом разделе.

     <FocusIn> и <FocusOut> генерируются, когда виджет получает или теряет фокус ввода.

     <Map> и <Unmap> генерируются, когда окно сворачивается в значок и восстанавливается.

     <Escape>, <BackSpace> и <Tab> генерируются при нажатии других специальных клавиш.

     <Down>, <Left> и <Right> генерируются при нажатии других клавиш со стрелками.

Этот список не полон, а для записи названий событий есть свой довольно сложный синтаксис, например:

     Модификаторы — могут добавляться к идентификаторам событий, чтобы сделать их еще более специфическими. Например, <B1-Motion> означает перемещение указателя мыши при нажатой левой кнопке, а <KeyPressa> генерируется только при нажатии клавиши «a».

     Синонимы — могут использоваться для имен некоторых частых событий. Например, <ButtonPress-1>, <Button-1> и <1> означают нажатие левой кнопки мыши, а <KeyPressa> и <Keya> означают клавишу «a». Все формы имен чувствительны к регистру символов: пишите <KeyEscape>, а не <KEYESCAPE>.

     Имеется возможность определять идентификаторы виртуальных событий, обозначающие последовательности из одного или нескольких событий, с помощью пары угловых скобок (например, <<PasteText>>).

С целью экономии места за исчерпывающими сведениями по этой теме мы отсылаем вас к другим источникам информации по Tk и tkinter. Кроме того, изменяя настройки в сценарии и запуская его заново, также можно выяснить некоторые особенности поведения событий — в конце концов, это Python.

Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011

Оцените статью
Секреты программирования
Добавить комментарий