EJIO.ctk_extender.event package¶

Submodules¶
EJIO.ctk_extender.event.base module¶
- class EJIO.ctk_extender.event.base.Event(sender: Any = None)[исходный код]¶
Базовые классы:
objectБазовый абстрактный класс для всех событий. Каждое конкретное событие должно наследоваться от этого класса.
- property sender: Any¶
Возвращает отправителя события.
- property sender_thread_name: str¶
Возвращает имя потока, отправившего событие.
- property timestamp: float¶
Возвращает UNIX-время создания события.
EJIO.ctk_extender.event.controller module¶
- class EJIO.ctk_extender.event.controller.EventController(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
StaticClassПотокобезопасный контроллер событий. Поддерживает строгую фильтрацию событий по отправителю (sender) или кастомному предикату. Вызывает обработчики строго в главном UI-потоке customtkinter.
- classmethod emit(event: Event) None[исходный код]¶
Потокобезопасно отправляет объект события в очередь.
- Параметры:
event – Событие которое нужно отправить в очередь.
- classmethod initialize(root_widget: <MagicMock name = 'mock.CTk' id='140416957096608'>, polling_interval_ms: int = 16) None[исходный код]¶
Инициализирует контроллер и запускает бесконечный цикл опроса очереди.
- Параметры:
root_widget – Корневой виджет ctk приложения.
polling_interval_ms – Интервал между обработкой событий.
- classmethod subscribe(event_type: type[E], callback: Callable[[E], None], *, sender: Any | None = None, predicate: Callable[[E], bool] | None = None) None[исходный код]¶
Подписывает обработчик на определенный класс события с возможностью фильтрации.
- Параметры:
event_type – Класс события (наследник Event).
callback – Функция обратного вызова, принимающая экземпляр этого события.
sender – Опционально: фильтровать события строго от этого объекта-отправителя.
predicate – Опционально: кастомная функция-фильтр, возвращающая True/False.
- classmethod unsubscribe(event_type: type[E], callback: Callable[[E], None]) None[исходный код]¶
Отписывает обработчик от указанного класса события.
- Параметры:
event_type – Класс события (наследник Event).
callback – Функция обратного вызова, привязанная к этому событию.
EJIO.ctk_extender.event.listener module¶
- class EJIO.ctk_extender.event.listener.EventListener(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
StaticClassВспомогательный класс-миксин или менеджер, автоматически связывающий декорированные методы объекта с глобальным EventController.
- classmethod register_listeners(instance: Any) None[исходный код]¶
Сканирует переданный объект на наличие методов с декоратором @on_event и автоматически подписывает их в EventController с учетом динамических отправителей.
- Параметры:
instance: – Объект события которого нужно зарегестрировать.
- classmethod unregister_listeners(instance: Any) None[исходный код]¶
Автоматически отписывает все методы объекта от EventController.
- Параметры:
instance – Объект события которого нужно отписать.
- EJIO.ctk_extender.event.listener.on_event(event_type: type[E], *, sender_attr: str | None = None, predicate: Callable[[E], bool] | None = None) Callable[[Callable[[Any, E], None]], Callable[[Any, E], None]][исходный код]¶
Декоратор для декларативной подписки методов класса на события. Полноценно оборачивает функцию, сохраняя метаданные для EventListener.
- Параметры:
event_type – Класс отслеживаемого события.
sender_attr – Опционально: строка с именем атрибута экземпляра класса, который является отправителем (например, „state“ или „table“).
predicate – Опционально: функция-фильтр условий.
- Результат:
Функцию, обарачивающую указанный коллбэк для события.
Module contents¶
- class EJIO.ctk_extender.event.Event(sender: Any = None)[исходный код]¶
Базовые классы:
objectБазовый абстрактный класс для всех событий. Каждое конкретное событие должно наследоваться от этого класса.
- property sender: Any¶
Возвращает отправителя события.
- property sender_thread_name: str¶
Возвращает имя потока, отправившего событие.
- property timestamp: float¶
Возвращает UNIX-время создания события.
- class EJIO.ctk_extender.event.EventController(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
StaticClassПотокобезопасный контроллер событий. Поддерживает строгую фильтрацию событий по отправителю (sender) или кастомному предикату. Вызывает обработчики строго в главном UI-потоке customtkinter.
- classmethod emit(event: Event) None[исходный код]¶
Потокобезопасно отправляет объект события в очередь.
- Параметры:
event – Событие которое нужно отправить в очередь.
- classmethod initialize(root_widget: <MagicMock name = 'mock.CTk' id='140416957096608'>, polling_interval_ms: int = 16) None[исходный код]¶
Инициализирует контроллер и запускает бесконечный цикл опроса очереди.
- Параметры:
root_widget – Корневой виджет ctk приложения.
polling_interval_ms – Интервал между обработкой событий.
- classmethod subscribe(event_type: type[E], callback: Callable[[E], None], *, sender: Any | None = None, predicate: Callable[[E], bool] | None = None) None[исходный код]¶
Подписывает обработчик на определенный класс события с возможностью фильтрации.
- Параметры:
event_type – Класс события (наследник Event).
callback – Функция обратного вызова, принимающая экземпляр этого события.
sender – Опционально: фильтровать события строго от этого объекта-отправителя.
predicate – Опционально: кастомная функция-фильтр, возвращающая True/False.
- classmethod unsubscribe(event_type: type[E], callback: Callable[[E], None]) None[исходный код]¶
Отписывает обработчик от указанного класса события.
- Параметры:
event_type – Класс события (наследник Event).
callback – Функция обратного вызова, привязанная к этому событию.
- class EJIO.ctk_extender.event.EventListener(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
StaticClassВспомогательный класс-миксин или менеджер, автоматически связывающий декорированные методы объекта с глобальным EventController.
- classmethod register_listeners(instance: Any) None[исходный код]¶
Сканирует переданный объект на наличие методов с декоратором @on_event и автоматически подписывает их в EventController с учетом динамических отправителей.
- Параметры:
instance: – Объект события которого нужно зарегестрировать.
- classmethod unregister_listeners(instance: Any) None[исходный код]¶
Автоматически отписывает все методы объекта от EventController.
- Параметры:
instance – Объект события которого нужно отписать.
- EJIO.ctk_extender.event.on_event(event_type: type[E], *, sender_attr: str | None = None, predicate: Callable[[E], bool] | None = None) Callable[[Callable[[Any, E], None]], Callable[[Any, E], None]][исходный код]¶
Декоратор для декларативной подписки методов класса на события. Полноценно оборачивает функцию, сохраняя метаданные для EventListener.
- Параметры:
event_type – Класс отслеживаемого события.
sender_attr – Опционально: строка с именем атрибута экземпляра класса, который является отправителем (например, „state“ или „table“).
predicate – Опционально: функция-фильтр условий.
- Результат:
Функцию, обарачивающую указанный коллбэк для события.