|
|||||||
|
Как в tkinter создать событие, подписаться на него, и обработать событие?
Время создания: 25.02.2026 14:24
Текстовые метки: python, tkinter, событие, создание, генерация, подписка, обработка, bind
Раздел: Компьютер - Программирование - Язык Python - Tkinter
Запись: xintrea/mytetra_syncro/master/base/1772018642sf5k6befwz/text.html на raw.githubusercontent.com
|
|||||||
|
|
|||||||
|
Любому объекту-окну или виджету, например, главному окну приложения tk.Tk() или даже простому Label, можно добавлять события, которые он будет генерировать. Вызывать генерацию такого события можно как внутри объекта, так и внешним кодом. События различаются по их текстовому наименованию. Вот основные блоки кода, которые используются чтобы создать событие, подписаться на него, и обработать событие: # Создается пользовательское событие self.root.event_add("<<StatusChanged>>", "None")
...
# Подписка на событие в виде лямбды frame1.bind("<<StatusChanged>>", lambda e: self.on_status_changed(e, self.label1)) # Подписка на событие, чтобы вызывался метод on_status_changed_for_frame # У данного метода должны быть паметры (self, data=None) frame2.bind("<<StatusChanged>>", self.on_status_changed_for_frame)
...
# Генерация события корневого окна (оно распространится на всех детей) self.root.event_generate("<<StatusChanged>>", data="New status") Эти блоки кода могут находиться в совершенно разных местах приложения, даже в разных файлах. И событие будет "доходить" до объекта, который на него подписался, и будет вызываться функция - обработчик. |
|||||||
|
Так же в этом разделе:
|
|||||||
|
|||||||
|
|||||||
|