Шаг 5.
Библиотека Tkinter.
Обработка событий (общие сведения)
На этом шаге мы подитожим наши сведения об обработке событий.
Не будет преувеличением сказать, что большая часть полезной работы, производимой приложением, выполняется в обработчиках различных событий. Обработка событий в библиотеке Tkinter - весьма обширная тема,
разговор о которой будет долгим и обстоятельным.
Сначала подытожим все, что мы уже знаем о событиях, и узнаем о них кое-что новое:
- событие - это сущность, обозначающая причину, по которой состояние приложения изменилось, и хранящая дополнительные сведения об этой причине. Так, при нажатии кнопки мыши состояние приложения
изменяется и возникает соответствующее событие;
- с точки зрения программиста событие - это экземпляр класса Event из модуля tkinter;
- каждое возникающее в приложении событие относится к определенному типу, однозначно указывающему на причину изменения состояния приложения. Например, событие, возникающее при нажатии
кнопки мыши, имеет тип Button, а возникающее при отпускании ранее нажатой кнопки мыши - тип ButtonRelease;
- дополнительные сведения о событии хранятся в атрибутах класса Event. К ним относятся координаты курсора мыши, код нажатой клавиши, код клавиши-модификатора, удерживаемой в момент возникновения события, и т. п.;
- обработчик события - это функция или метод, вызывающиеся при возникновении события;
- обработчик события в качестве единственного параметра должен принимать экземпляр класса Event, хранящий сведения о событии;
- обработчик события привязывается, с одной стороны, к конкретному компоненту, в котором может возникнуть то или иное событие, а с другой - к событию конкретного типа. В качестве примера можно обратиться
к 2 шагу - в нем мы привязали обработчик к событию ButtonRelease, которое возникает в первой кнопке;
- один и тот же обработчик события можно привязать сразу к нескольким компонентам и к нескольким событиям. Однако в этом случае следует предусмотреть какой-либо механизм для выяснения, событие какого типа и в каком компоненте возникло.
На следующем шаге мы рассмотрим привязку обработчиков к событиям.
Предыдущий шаг
Содержание
Следующий шаг