На этом шаге мы рассмотрим алгоритм генерации событий.
Обычно возникающие в приложении события, в том числе и виртуальные, генерируются самой библиотекой Tkinter при изменении состояния приложения. Однако мы имеем возможность искусственно сгенерировать любое событие, в том числе и виртуальное.
Метод event_generate(), поддерживаемый всеми компонентами, генерирует в текущем компоненте событие с указанным наименованием. Вот формат его вызова:
event_generate(<Наименование генерируемого события>[, <Атрибут класса Event 1>=<Значение атрибута 1>, <Атрибут класса Event 2>=<Значение атрибута 2>, . . . ])
А вот пример генерации виртуального события DblClick:
self.entValue.event_generate ("<<DblClick>>")
Если в экземпляр класса Event, описывающий событие и передаваемый обработчикам заданного события, следует занести какие-то специфические сведения о сгенерированном событии, можно указать эти значения непосредственно в вызове метода, присвоив их параметрам, чьи названия совпадают с названиями соответствующих атрибутов упомянутого ранее класса. Вот пример генерации события KeyPress с занесением в экземпляр класса Event параметров клавиши Enter:
self.entValue.event_generate("<KeyPress>", keysym="Return", keycode=36)
На следующем шаге мы рассмотрим перехват событий.