EJIO.ctk_extender package¶

Subpackages¶
- EJIO.ctk_extender.app package
- Submodules
- EJIO.ctk_extender.app.base module
ApplicationApplication.change_language()Application.close_window()Application.emit()Application.exit()Application.get_window()Application.is_runningApplication.navigate_to()Application.notify()Application.open_window()Application.pop_screen()Application.popup_confirm()Application.popup_image()Application.popup_info()Application.popup_warning()Application.push_screen()Application.run()Application.subscribe()Application.translate()Application.unsubscribe()
- Module contents
ApplicationApplication.change_language()Application.close_window()Application.emit()Application.exit()Application.get_window()Application.is_runningApplication.navigate_to()Application.notify()Application.open_window()Application.pop_screen()Application.popup_confirm()Application.popup_image()Application.popup_info()Application.popup_warning()Application.push_screen()Application.run()Application.subscribe()Application.translate()Application.unsubscribe()
- EJIO.ctk_extender.components package
- Submodules
- EJIO.ctk_extender.components.color_picker module
- EJIO.ctk_extender.components.copyable_field module
- EJIO.ctk_extender.components.date_picker module
- EJIO.ctk_extender.components.event module
- EJIO.ctk_extender.components.image module
- EJIO.ctk_extender.components.labeled_field module
- EJIO.ctk_extender.components.localization module
- EJIO.ctk_extender.components.login_form module
- EJIO.ctk_extender.components.scrollable_container module
- EJIO.ctk_extender.components.section module
- EJIO.ctk_extender.components.table module
- Module contents
- EJIO.ctk_extender.config package
- EJIO.ctk_extender.event package
- EJIO.ctk_extender.layout package
- EJIO.ctk_extender.notification package
- Submodules
- EJIO.ctk_extender.notification.base module
- EJIO.ctk_extender.notification.desktop_controller module
- EJIO.ctk_extender.notification.err module
- EJIO.ctk_extender.notification.flags module
- EJIO.ctk_extender.notification.in_app_controller module
- EJIO.ctk_extender.notification.position module
- Module contents
- EJIO.ctk_extender.state package
- Submodules
- EJIO.ctk_extender.state.collection module
- EJIO.ctk_extender.state.events module
- EJIO.ctk_extender.state.model module
- EJIO.ctk_extender.state.reactive module
- Module contents
- EJIO.ctk_extender.widget package
- Subpackages
- Submodules
- EJIO.ctk_extender.widget.base module
- EJIO.ctk_extender.widget.container module
- EJIO.ctk_extender.widget.err module
- Module contents
ButtonFormFormCheckBoxFormComboBoxFormDirectoryFieldFormFileFieldFormOptionMenuFieldFormRadioButtonGroupFormReadyEventFormSegmentedButtonFormSliderFormSubmittedEventFormSwitchFormTextBoxFormTextFieldFormValidationErrorEventGeometryStrategyGridStrategyInputFieldLabelPackStrategyPlaceStrategyProgressBarScrollableFrameTabviewWidgetWidgetContainer
- EJIO.ctk_extender.window package
- Submodules
- EJIO.ctk_extender.window.base module
WindowWindow.active_layout_canvasWindow.center()Window.configWindow.ctk_instanceWindow.destroy()Window.focus()Window.get_default_config()Window.maximize()Window.minimize()Window.mount()Window.nameWindow.on_mounted()Window.pop_layout()Window.push_layout()Window.resize()Window.restore()Window.screenshotWindow.switch_layout()
- EJIO.ctk_extender.window.config module
- EJIO.ctk_extender.window.controller module
- EJIO.ctk_extender.window.err module
- EJIO.ctk_extender.window.registry module
- EJIO.ctk_extender.window.session module
- Module contents
WindowWindow.active_layout_canvasWindow.center()Window.configWindow.ctk_instanceWindow.destroy()Window.focus()Window.get_default_config()Window.maximize()Window.minimize()Window.mount()Window.nameWindow.on_mounted()Window.pop_layout()Window.push_layout()Window.resize()Window.restore()Window.screenshotWindow.switch_layout()
WindowConfigWindowControllerWindowRegistryWindowSessionManagerregister_window()
- EJIO.ctk_extender.windows package
- Subpackages
- EJIO.ctk_extender.windows.layout package
- EJIO.ctk_extender.windows.notification package
- EJIO.ctk_extender.windows.popup package
- Submodules
- EJIO.ctk_extender.windows.popup.base module
- EJIO.ctk_extender.windows.popup.color module
- EJIO.ctk_extender.windows.popup.confirm module
- EJIO.ctk_extender.windows.popup.date module
- EJIO.ctk_extender.windows.popup.factory module
- EJIO.ctk_extender.windows.popup.image module
- EJIO.ctk_extender.windows.popup.info module
- EJIO.ctk_extender.windows.popup.localization module
- EJIO.ctk_extender.windows.popup.warning module
- Module contents
- Module contents
BasePopupBlankLayoutColorPickerPopupConfirmPopupDatePickerPopupErrorNotificationImagePopupInfoNotificationInfoPopupLoginLayoutSuccessNotificationWarningNotificationWarningPopuppopup_color()popup_confirm()popup_date()popup_directory()popup_file()popup_image()popup_info()popup_warning()
- Subpackages
Submodules¶
EJIO.ctk_extender.base_error module¶
- exception EJIO.ctk_extender.base_error.CtkExtenderBaseError(message: str)[исходный код]¶
Базовые классы:
EJIOBaseErrorБазовое исключение пакета ctk_extender.
EJIO.ctk_extender.err module¶
- exception EJIO.ctk_extender.err.CtkExtenderBaseError(message: str)[исходный код]¶
Базовые классы:
EJIOBaseErrorБазовое исключение пакета ctk_extender.
- exception EJIO.ctk_extender.err.CtkExtenderWidgetContainerError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderWidgetErrorБазовое исключение связанное с ошибками в WidgetContainer.
- exception EJIO.ctk_extender.err.CtkExtenderWidgetError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderBaseErrorБазовое исключение пакента widget пакета ctk_extender.
- exception EJIO.ctk_extender.err.CtkExtenderWindowError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderBaseErrorБазовое исключение пакента window пакета ctk_extender.
- exception EJIO.ctk_extender.err.IncorrectLayoutTypeError(message: str)[исходный код]¶
Базовые классы:
LayoutRegistryErrorИсключение связанное с некорректной попыткой регистрации лэйаута.
- exception EJIO.ctk_extender.err.IncorrectWindowTypeError(message: str)[исходный код]¶
Базовые классы:
WindowRegistryErrorИсключение связанное с некорректной попыткой регистрации окна.
- exception EJIO.ctk_extender.err.LayoutAlreadyRegisteredError(message: str)[исходный код]¶
Базовые классы:
LayoutRegistryErrorИсключение связанное с ошибкой перезаписи зарегестрированного лэйаута.
- exception EJIO.ctk_extender.err.LayoutNotFoundError(message: str)[исходный код]¶
Базовые классы:
LayoutRegistryErrorИсключение связанное с ошибкой остутствия искомого лэйаута в реестре.
- exception EJIO.ctk_extender.err.LayoutRegistryError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderBaseErrorБазовое исключение связанное с работой реестра окон.
- exception EJIO.ctk_extender.err.NotificationMountError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderBaseErrorИсключение связанное с ошибками монтирования уведомления.
- exception EJIO.ctk_extender.err.WidgetContainerExtensionError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderWidgetContainerErrorИсключение связанное с ошибкой добавления виджета в WidgetContainer.
- exception EJIO.ctk_extender.err.WidgetMountError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderWidgetErrorИсключение связанное с ошибками монтирования виджета.
- exception EJIO.ctk_extender.err.WidgetNotInitializedError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderWidgetErrorИсключение связанное с ошибками инициализации виджета.
- exception EJIO.ctk_extender.err.WindowAlreadyRegisteredError(message: str)[исходный код]¶
Базовые классы:
WindowRegistryErrorИсключение связанное с ошибкой перезаписи зарегестрированного окна.
- exception EJIO.ctk_extender.err.WindowInstanceMissingError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderWindowErrorИсключение связанное с ошибкой доступа к экземпляру окна.
- exception EJIO.ctk_extender.err.WindowNotActiveError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderWindowErrorИсключение связанное с ошибкой доступа к неинициализированному окну.
- exception EJIO.ctk_extender.err.WindowNotFoundError(message: str)[исходный код]¶
Базовые классы:
WindowRegistryErrorИсключение связанное с ошибкой остутствия искомого окна в реестре.
- exception EJIO.ctk_extender.err.WindowRegistryError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderWindowErrorБазовое исключение связанное с работой реестра окон.
Module contents¶
- class EJIO.ctk_extender.Application(*args: object, **kwargs: object)[исходный код]¶
Базовые классы:
SingletonГлобальный оркестратор и единый фасадный интерфейс фреймворка ctk_extender. Предоставляет методы для управления событиями, навигацией и жизненным циклом окон без прямого обращения к внутренним контроллерам.
- change_language(locale: str) None[исходный код]¶
Переключает текущий язык интерфейса приложения в рантайме.
- close_window(name: str) None[исходный код]¶
Закрывает окно по его имени.
- emit(event: Event) None[исходный код]¶
Потокобезопасно отправляет событие в глобальную шину.
- exit(exit_code: int = 0) None[исходный код]¶
Полная каскадная выгрузка всех компонентов и завершение работы.
- get_window(name: str) Window[исходный код]¶
Возвращает живой объект активного окна по имени.
- property is_running: bool¶
Переключает текущий макет указанного окна (с полной очисткой стека).
- notify(notification_cls: type[BaseNotification], target: Literal['in_app', 'desktop'] = 'in_app', flags: StyleFlags = StyleFlags.DEFAULT, position: str = 'top_right', duration: float = 3.5, **kwargs: Any) None[исходный код]¶
Единая полиморфная точка входа для отправки уведомлений во фреймворке. Прозрачно проксирует переданный ООП-класс уведомления в контроллеры.
- open_window(name: str, *args: Any, **kwargs: Any) Window[исходный код]¶
Создает и выводит на экран окно из WindowRegistry.
- pop_screen(window_name: str) None[исходный код]¶
Возвращает указанное окно на предыдущий экран навигационного стека.
- popup_confirm(title: str, message: str, on_callback: Callable[[bool], None]) None[исходный код]¶
Показывает модальный диалог подтверждения операции (Да/Нет) с защитой от крестика.
- popup_image(title: str, source: str | Path | bytes) None[исходный код]¶
Открывает независимое неблокирующее окно для просмотра картинок или байтовых графов.
- popup_info(title: str, message: str) None[исходный код]¶
Показывает модальное информационное окно.
- popup_warning(title: str, message: str) None[исходный код]¶
Показывает модальное предупреждение об ошибке.
- push_screen(window_name: str, layout_name: str) None[исходный код]¶
Помещает новый экран на вершину стека навигации указанного окна.
- run() None[исходный код]¶
Запускает приложение, инициализируя тему, локали и главный цикл Tkinter.
- subscribe(event_type: type[E], callback: Callable[[E], None], *, sender: Any | None = None, predicate: Callable[[E], bool] | None = None) None[исходный код]¶
Подписывает обработчик на определенное событие с фильтрацией.
- translate(key_path: str, default: str | None = None) str[исходный код]¶
Извлекает локализованную строку по её точечному пути. Дублирует поведение глобальной функции _().
- unsubscribe(event_type: type[E], callback: Callable[[E], None]) None[исходный код]¶
Отписывает обработчик от события.
- class EJIO.ctk_extender.BaseNotification(parent: Any, flags: StyleFlags = StyleFlags.DEFAULT, width: int = 320, height: int = 60, fg_color: str = '#1E293B', border_color: str = '#475569', **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetContainerБазовый ООП-компонент уведомления. Строит пустую оболочку фона на основании битовой комбинации флагов StyleFlags. Центрирует вложенное содержимое, предотвращая перекрытие рамок.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Парсит побитовые флаги и собирает пустую оболочку фона.
- property content_area: <MagicMock name='mock.CTkFrame' id='140416972239120'>¶
- property height: int¶
- property width: int¶
- class EJIO.ctk_extender.BlankLayout(parent: <MagicMock name = 'mock.CTk.__or__().__or__()' id='140416957553632'>, geometry: GeometryStrategy | None = None)[исходный код]¶
Базовые классы:
LayoutВстроенный пустой макет фреймворка. Используется как заглушка по умолчанию, чтобы защитить геометрию окна.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Строит базовый контейнерный фрейм. Может быть переопределен в дочерних классах (например, для настройки бордеров или цвета).
- on_hide() None[исходный код]¶
Хук жизненного цикла: макет скрыт (ушел вглубь стека или закрывается).
- on_show() None[исходный код]¶
Хук жизненного цикла: макет выведен на экран (стал активным).
- class EJIO.ctk_extender.Button(parent: Any, text: str = 'Button', command: Callable[[], None] | None = None, geometry: GeometryStrategy | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetКомпонент интерактивной кнопки (на базе ctk.CTkButton).
- build() <MagicMock name='mock.CTkButton' id='140416955843792'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- class EJIO.ctk_extender.CollectionChangedEvent(sender: Any, operation: str, items: list[T])[исходный код]¶
Базовые классы:
Event,GenericСобытие, возникающее при изменении реактивной коллекции (добавление, удаление, очистка).
- property items: list[T]¶
- property operation: str¶
- property sender: Any¶
Возвращает отправителя события.
- class EJIO.ctk_extender.ColorPicker(parent: Any, initial_color: str | Color, on_change: Callable[[Color], None], geometry: Any = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetИнтерактивный виджет выбора цвета. Поддерживает ввод HEX, RGB целых чисел и вызов палитры ОС.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- class EJIO.ctk_extender.CopyableField(parent: Any, label_text: str, value_text: str, layout: Literal['row', 'column'] = 'row', geometry: Any = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetContainerИнформационное поле вывода данных с кнопкой копирования в буфер обмена. Поддерживает каноничное позиционирование подписи сверху (column) или в ряд (row).
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Строит контейнер поля копирования с динамической сеткой.
- copy_to_clipboard() None[исходный код]¶
Потокобезопасно копирует текст в буфер обмена операционной системы.
- destroy() None[исходный код]¶
Каскадно уничтожает сам контейнер и все вложенные в него дочерние виджеты, полностью очищая оперативную память.
- class EJIO.ctk_extender.DatePicker(parent: Any, initial_date: date | None = None, on_select: Callable[[date], None] | None = None, geometry: Any = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetИнтерактивный календарный виджет выбора даты. Полностью автономен, перерисовывает дни месяца на лету.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- class EJIO.ctk_extender.DictionaryChangedEvent(sender: Any, operation: str, key: K | None, value: V | None)[исходный код]¶
Базовые классы:
Event,GenericСобытие, возникающее при изменении реактивного словаря (set, delete, clear).
- property key: K | None¶
- property operation: str¶
- property sender: Any¶
Возвращает отправителя события.
- property value: V | None¶
- class EJIO.ctk_extender.ErrorNotification(parent: Any, flags: StyleFlags = StyleFlags.DEFAULT, message: str | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
BaseNotificationВстроенное критическое уведомление об ошибке (Красный стиль).
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Парсит побитовые флаги и собирает пустую оболочку фона.
- class EJIO.ctk_extender.Event(sender: Any = None)[исходный код]¶
Базовые классы:
objectБазовый абстрактный класс для всех событий. Каждое конкретное событие должно наследоваться от этого класса.
- property sender: Any¶
Возвращает отправителя события.
- property sender_thread_name: str¶
Возвращает имя потока, отправившего событие.
- property timestamp: float¶
Возвращает UNIX-время создания события.
- class EJIO.ctk_extender.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 – Объект события которого нужно отписать.
- class EJIO.ctk_extender.FieldReturnEvent(sender: Any, field_name: str)[исходный код]¶
Базовые классы:
EventТриггерится при нажатии Enter внутри текстовых полей формы.
- field_name: str¶
- class EJIO.ctk_extender.Form(parent: <MagicMock name = 'mock.CTk.__or__().__or__()' id='140416957553632'>, geometry: Any = None)[исходный код]¶
Базовые классы:
WidgetContainerСпециализированный контейнер для группировки элементов ввода. Автоматически собирает данные, проводит сквозную валидацию и очистку полей.
- add_widget(widget_cls: type[W], *args: Any, **kwargs: Any) W[исходный код]¶
Переопределенный метод добавления виджета. Если добавляемый виджет является полем ввода, регистрирует его в форме.
- Параметры:
widget_cls – Класс создаваемого виджета (наследник Widget).
args – Позиционные аргументы для конструктора виджета.
kwargs – Именованные аргументы для конструктора виджета.
- Результат:
Созданный экземпляр виджета.
- clear() Self[исходный код]¶
Сбрасывает значения всех полей формы.
- destroy() None[исходный код]¶
Очищает реестр полей ввода и каскадно уничтожает контейнер.
- focus_field(name: str) None[исходный код]¶
Переводит фокус ввода на указанное поле формы по его имени. Безопасно извлекает внутренний инпут и запрашивает фокус у ОС.
- Параметры:
name – Имя поля на которое нужно переключиться.
- get_data() dict[str, Any][исходный код]¶
Собирает текущие данные со всех зарегистрированных полей ввода.
- Результат:
Словарь, содержащий данные всех полей ввода в формате имя поля -> значение.
- remove_widget(widget: W) Self[исходный код]¶
Удаляет виджет из формы, синхронно вычищая его из реестра полей ввода и каскадно уничтожая его ресурсы.
- Параметры:
widget – Экземпляр уничтожаемого виджета.
- set_data(data: dict[str, Any]) Self[исходный код]¶
Заполняет поля формы переданным словарем данных.
- submit() bool[исходный код]¶
Запускает процесс валидации и отправки формы. Генерирует FormSubmittedEvent при успехе или FormValidationErrorEvent при ошибке.
- Результат:
True, если валидация успешна, иначе False.
- class EJIO.ctk_extender.FormCheckBox(parent: Any, name: str, text: str = '', geometry: GeometryStrategy | None = None)[исходный код]¶
Базовые классы:
Widget,InputFieldФлажок (чекбокс) для формы (на базе ctk.CTkCheckBox).
- build() <MagicMock name='mock.CTkCheckBox' id='140416955675040'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- get_value() bool[исходный код]¶
Возвращает текущее значение, введенное пользователем.
- property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- class EJIO.ctk_extender.FormComboBox(parent: Any, name: str, values: list[str], geometry: GeometryStrategy | None = None)[исходный код]¶
Базовые классы:
Widget,InputFieldВыпадающий список (комбобокс) для формы (на базе ctk.CTkComboBox).
- build() <MagicMock name='mock.CTkComboBox' id='140416955713872'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- get_value() str[исходный код]¶
Возвращает текущее значение, введенное пользователем.
- property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- class EJIO.ctk_extender.FormDirectoryField(parent: Any, name: str, label_text: str, required: bool = False, geometry: Any = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetContainer,InputFieldПоле формы для выбора директорий с поддержкой валидации и ограничений.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Строит базовый контейнерный фрейм. Может быть переопределен в дочерних классах (например, для настройки бордеров или цвета).
- clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- get_value() str | list[str][исходный код]¶
Возвращает текущее значение, введенное пользователем.
- property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- validate() str | None[исходный код]¶
Проводит внутреннюю валидацию поля. :return: Строка с ошибкой, если она есть, иначе None.
- class EJIO.ctk_extender.FormFileField(parent: Any, name: str, label_text: str, file_types: list[tuple[str, str]] | None = None, multiple: bool = False, required: bool = False, geometry: Any = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetContainer,InputFieldПоле формы для выбора файлов с поддержкой валидации и ограничений.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Строит базовый контейнерный фрейм. Может быть переопределен в дочерних классах (например, для настройки бордеров или цвета).
- clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- get_value() str | list[str][исходный код]¶
Возвращает текущее значение, введенное пользователем.
- property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- validate() str | None[исходный код]¶
Проводит внутреннюю валидацию поля. :return: Строка с ошибкой, если она есть, иначе None.
- class EJIO.ctk_extender.FormLabeledField(parent: Any, name: str, label_text: str, placeholder: str = '', layout: Literal['row', 'column'] = 'row', required: bool = False, geometry: GeometryStrategy | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetContainer,InputFieldВысокоуровневый составной компонент формы. Строится на базе WidgetContainer и использует внутри себя готовый FormTextField.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Строит базовый фрейм контейнера и декларативно наполняет его написанными ранее компонентами.
- clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- destroy() None[исходный код]¶
Каскадно очищает ссылки и вызывает базовое уничтожение контейнера.
- focus() None[исходный код]¶
Перенаправляет фокус ввода внутреннему текстовому полю формы.
- get_value() str[исходный код]¶
Возвращает текущее значение, введенное пользователем.
- property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- validate() str | None[исходный код]¶
Проводит внутреннюю валидацию поля. :return: Строка с ошибкой, если она есть, иначе None.
- class EJIO.ctk_extender.FormOptionMenuField(parent: Any, name: str, label_text: str, values: list[str], default_value: str | None = None, layout: Literal['row', 'column'] = 'row', required: bool = False, geometry: GeometryStrategy | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetContainer,InputFieldВысокоуровневое поле формы на базе выпадающего списка ctk.CTkOptionMenu. Интегрировано в подсистему валидации форм.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Строит каркас поля формы с поддержкой сеточного позиционирования.
- clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- destroy() None[исходный код]¶
Каскадно уничтожает сам контейнер и все вложенные в него дочерние виджеты, полностью очищая оперативную память.
- get_value() str[исходный код]¶
Возвращает текущее значение, введенное пользователем.
- property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- validate() str | None[исходный код]¶
Проверяет, выбрано ли значение, если поле обязательно.
- class EJIO.ctk_extender.FormRadioButtonGroup(parent: Any, name: str, options: list[str], geometry: GeometryStrategy | None = None)[исходный код]¶
Базовые классы:
Widget,InputFieldГруппа радио-кнопок для выбора одного значения из нескольких опций.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Собирает невидимый фрейм-контейнер, внутри которого автоматически упаковывает радио-кнопки по вертикали.
- clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- destroy() None[исходный код]¶
Полностью уничтожает виджет, очищая память и удаляя его глобальные подписки.
- get_value() str[исходный код]¶
Возвращает текущее значение, введенное пользователем.
- property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- class EJIO.ctk_extender.FormReadyEvent(target_form: Any)[исходный код]¶
Базовые классы:
EventСобытие-ответ, сообщающее форме, что её обработка завершена и она может принимать новые клики.
- property target_form: Any¶
- class EJIO.ctk_extender.FormSegmentedButton(parent: Any, name: str, values: list[str], geometry: GeometryStrategy | None = None)[исходный код]¶
Базовые классы:
Widget,InputFieldСегментированная кнопка выбора для формы (на базе ctk.CTkSegmentedButton).
- build() <MagicMock name='mock.CTkSegmentedButton' id='140416955763120'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- get_value() str[исходный код]¶
Возвращает текущее значение, введенное пользователем.
- property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- class EJIO.ctk_extender.FormSlider(parent: Any, name: str, from_value: float = 0.0, to_value: float = 100.0, default_value: float = 0.0, geometry: GeometryStrategy | None = None)[исходный код]¶
Базовые классы:
Widget,InputFieldКомпонент ползунка для формы (на базе ctk.CTkSlider).
- build() <MagicMock name='mock.CTkSlider' id='140416955719344'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- get_value() float[исходный код]¶
Возвращает текущее значение, введенное пользователем.
- property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- class EJIO.ctk_extender.FormSubmittedEvent(sender: Any, data: dict[str, Any])[исходный код]¶
Базовые классы:
EventСобытие, возникающее при успешной валидации и отправке формы.
- property data: dict[str, Any]¶
- class EJIO.ctk_extender.FormSwitch(parent: Any, name: str, text: str = '', geometry: GeometryStrategy | None = None)[исходный код]¶
Базовые классы:
Widget,InputFieldКомпонент тумблера/переключателя для формы (на базе ctk.CTkSwitch).
- build() <MagicMock name='mock.CTkSwitch' id='140416955725632'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- get_value() bool[исходный код]¶
Возвращает текущее значение, введенное пользователем.
- property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- class EJIO.ctk_extender.FormTextBox(parent: Any, name: str, required: bool = False, geometry: GeometryStrategy | None = None)[исходный код]¶
Базовые классы:
Widget,InputFieldМногострочное текстовое поле ввода для формы (на базе ctk.CTkTextbox).
- build() <MagicMock name='mock.CTkTextbox' id='140416955767824'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- get_value() str[исходный код]¶
Возвращает текущее значение, введенное пользователем.
- property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- validate() str | None[исходный код]¶
Проводит внутреннюю валидацию поля. :return: Строка с ошибкой, если она есть, иначе None.
- class EJIO.ctk_extender.FormTextField(parent: Any, name: str, placeholder: str = '', required: bool = False, geometry: GeometryStrategy | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
Widget,InputFieldТекстовое поле ввода для формы (на базе ctk.CTkEntry).
- build() <MagicMock name='mock.CTkEntry' id='140416955669664'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- get_value() str[исходный код]¶
Возвращает текущее значение, введенное пользователем.
- property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- validate() str | None[исходный код]¶
Проводит внутреннюю валидацию поля. :return: Строка с ошибкой, если она есть, иначе None.
- class EJIO.ctk_extender.FormValidationErrorEvent(sender: Any, errors: dict[str, str])[исходный код]¶
Базовые классы:
EventСобытие, возникающее, если форма не прошла валидацию.
- property errors: dict[str, str]¶
- class EJIO.ctk_extender.GeometryStrategy(**kwargs: Any)[исходный код]¶
Базовые классы:
ABCАбстрактный базовый класс для стратегий позиционирования (менеджеров геометрии). Инкапсулирует параметры разметки и управляет монтированием виджета.
- abstractmethod mount(instance: <MagicMock name = 'mock.CTkBaseClass' id='140416957414240'>) None[исходный код]¶
Отрисовывает (монтирует) переданный виджет на родителе.
- abstractmethod unmount(instance: <MagicMock name = 'mock.CTkBaseClass' id='140416957414240'>) None[исходный код]¶
Скрывает (размонтирует) переданный виджет, убирая его с экрана.
- class EJIO.ctk_extender.GridStrategy(**kwargs: Any)[исходный код]¶
Базовые классы:
GeometryStrategyСтратегия позиционирования виджета через метод grid().
- mount(instance: <MagicMock name = 'mock.CTkBaseClass' id='140416957414240'>) None[исходный код]¶
Отрисовывает (монтирует) переданный виджет на родителе.
- unmount(instance: <MagicMock name = 'mock.CTkBaseClass' id='140416957414240'>) None[исходный код]¶
Скрывает (размонтирует) переданный виджет, убирая его с экрана.
- class EJIO.ctk_extender.ImageWidget(parent: Any, source: str | Path | bytes | None = None, container_size: tuple[int, int] = (300, 300), forced_size: tuple[int, int] | None = None, placeholder_text: str = 'Изображение отсутствует', geometry: GeometryStrategy | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetВысокоуровневый интерактивный компонент для работы с изображениями на базе ctk.CTkCanvas. Поддерживает загрузку из строк-путей, объектов Path и сырых байт (bytes) в памяти.
- build() <MagicMock name='mock.CTkCanvas' id='140416946111408'>[исходный код]¶
Строит фиксированный по размеру холст-контейнер.
- destroy() None[исходный код]¶
Очищает тяжелые Pillow-ресурсы, закрывает буферы памяти и уничтожает холст.
- update_source(new_source: str | Path | bytes) None[исходный код]¶
Публичный метод: динамически загружает новое изображение в созданный контейнер.
- class EJIO.ctk_extender.InfoNotification(parent: Any, flags: StyleFlags = StyleFlags.DEFAULT, message: str | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
BaseNotificationВстроенное информационное уведомление (Синий стиль).
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Парсит побитовые флаги и собирает пустую оболочку фона.
- class EJIO.ctk_extender.InputField(*args, **kwargs)[исходный код]¶
Базовые классы:
ProtocolПротокол, описывающий требования к элементам ввода внутри Form. Разрешен для рантайм-проверок через isinstance().
- abstractmethod clear() None[исходный код]¶
Сброс значения поля в дефолтное состояние.
- abstractmethod get_value() Any[исходный код]¶
Возвращает текущее значение, введенное пользователем.
- abstract property name: str¶
Уникальное имя поля для формирования итогового словаря данных.
- abstractmethod set_value(value: Any) None[исходный код]¶
Программная установка значения в поле.
- validate() str | None[исходный код]¶
Проводит внутреннюю валидацию поля. :return: Строка с ошибкой, если она есть, иначе None.
- class EJIO.ctk_extender.Label(parent: Any, text: str = '', geometry: GeometryStrategy | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetКомпонент вывода статичного текста или изображений (на базе ctk.CTkLabel).
- build() <MagicMock name='mock.CTkLabel' id='140416955848496'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- class EJIO.ctk_extender.Layout(parent: <MagicMock name = 'mock.CTk.__or__().__or__()' id='140416957553632'>, geometry: GeometryStrategy | None = None)[исходный код]¶
Базовые классы:
WidgetContainerБазовый класс для экранов (страниц) приложения. Изолирован от базовых виджетов и управляется навигационным стеком окна.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Строит базовый контейнерный фрейм. Может быть переопределен в дочерних классах (например, для настройки бордеров или цвета).
- destroy() None[исходный код]¶
Каскадно уничтожает сам контейнер и все вложенные в него дочерние виджеты, полностью очищая оперативную память.
- on_hide() None[исходный код]¶
Хук жизненного цикла: макет скрыт (ушел вглубь стека или закрывается).
- on_show() None[исходный код]¶
Хук жизненного цикла: макет выведен на экран (стал активным).
- class EJIO.ctk_extender.LoginForm(parent: Any, geometry: Any = None)[исходный код]¶
Базовые классы:
FormВысокоуровневый составной компонент формы авторизации.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Строит базовый контейнерный фрейм. Может быть переопределен в дочерних классах (например, для настройки бордеров или цвета).
- class EJIO.ctk_extender.LoginLayout(parent: <MagicMock name = 'mock.CTk.__or__().__or__()' id='140416957553632'>, geometry: GeometryStrategy | None = None)[исходный код]¶
Базовые классы:
Layout- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Строит базовый контейнерный фрейм. Может быть переопределен в дочерних классах (например, для настройки бордеров или цвета).
- destroy() None[исходный код]¶
Каскадно уничтожает сам контейнер и все вложенные в него дочерние виджеты, полностью очищая оперативную память.
- on_show() None[исходный код]¶
Хук жизненного цикла: макет выведен на экран (стал активным).
- class EJIO.ctk_extender.PackStrategy(**kwargs: Any)[исходный код]¶
Базовые классы:
GeometryStrategyСтратегия позиционирования виджета через метод pack().
- mount(instance: <MagicMock name = 'mock.CTkBaseClass' id='140416957414240'>) None[исходный код]¶
Отрисовывает (монтирует) переданный виджет на родителе.
- unmount(instance: <MagicMock name = 'mock.CTkBaseClass' id='140416957414240'>) None[исходный код]¶
Скрывает (размонтирует) переданный виджет, убирая его с экрана.
- class EJIO.ctk_extender.PlaceStrategy(**kwargs: Any)[исходный код]¶
Базовые классы:
GeometryStrategyСтратегия позиционирования виджета через метод place().
- mount(instance: <MagicMock name = 'mock.CTkBaseClass' id='140416957414240'>) None[исходный код]¶
Отрисовывает (монтирует) переданный виджет на родителе.
- unmount(instance: <MagicMock name = 'mock.CTkBaseClass' id='140416957414240'>) None[исходный код]¶
Скрывает (размонтирует) переданный виджет, убирая его с экрана.
- class EJIO.ctk_extender.ProgressBar(parent: Any, geometry: GeometryStrategy | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetКомпонент индикатора выполнения процессов (на базе ctk.CTkProgressBar).
- build() <MagicMock name='mock.CTkProgressBar' id='140416955851616'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- class EJIO.ctk_extender.ReactiveDict(*args: Any, **kwargs: Any)[исходный код]¶
Базовые классы:
GenericРеактивная событийная обертка над потокобезопасным словарем.
- clear() None[исходный код]¶
- class EJIO.ctk_extender.ReactiveList(iterable: Iterable | None = None)[исходный код]¶
Базовые классы:
GenericРеактивная обертка над потокобезопасным двусвязным списком. Любое изменение состава элементов порождает CollectionChangedEvent.
- append(item: T) None[исходный код]¶
Добавить элемент в конец коллекции.
- clear() None[исходный код]¶
Очистить коллекцию.
- extend(iterable: Iterable) None[исходный код]¶
Добавить все элементы из итерируемого объекта.
- pop(index: int = -1) T[исходный код]¶
Удалить и вернуть элемент по индексу.
- remove(item: T) None[исходный код]¶
Удалить первое вхождение элемента.
- class EJIO.ctk_extender.ReactiveModel[исходный код]¶
Базовые классы:
objectБазовый класс-миксин для создания реактивных моделей и датаклассов. Любая модификация атрибутов автоматически генерирует StateChangedEvent.
- class EJIO.ctk_extender.ScrollableContainer(parent: Any, geometry: Any = None, orientation: str = 'vertical', label_text: str = '', **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetContainerПотокобезопасный прокручиваемый контейнер. Позволяет динамически добавлять элементы через фабрику add_widget, автоматически управляя полосами прокрутки.
- build() <MagicMock name='mock.CTkScrollableFrame' id='140416955856944'>[исходный код]¶
Строит нативный прокручиваемый фрейм customtkinter.
- class EJIO.ctk_extender.ScrollableFrame(parent: Any, title: str = '', geometry: GeometryStrategy | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetContainerСкроллируемый контейнер-фрейм для больших списков виджетов (на базе ctk.CTkScrollableFrame).
- build() <MagicMock name='mock.CTkScrollableFrame' id='140416955856944'>[исходный код]¶
Строит базовый контейнерный фрейм. Может быть переопределен в дочерних классах (например, для настройки бордеров или цвета).
- class EJIO.ctk_extender.Section(parent: Any, title_text: str, geometry: Any = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetContainerГрафическая секция: крупный заголовок по левому краю + прокручиваемый контейнер. Метод add_widget прозрачно проксирует добавление элементов прямо внутрь скролл-зоны.
- add_widget(widget_cls: type[W], *args: Any, **kwargs: Any) W[исходный код]¶
Переопределенный метод: направляет виджеты строго внутрь скролл-зоны.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Строит каркас секции.
- destroy() None[исходный код]¶
Каскадно уничтожает сам контейнер и все вложенные в него дочерние виджеты, полностью очищая оперативную память.
- class EJIO.ctk_extender.State(initial_value: T)[исходный код]¶
Базовые классы:
GenericПотокобезопасный контейнер одиночного реактивного состояния. Любая перезапись значения автоматически транслирует событие в EventController.
- property value: T¶
Возвращает текущее значение состояния.
- class EJIO.ctk_extender.StateChangedEvent(sender: Any, new_value: T)[исходный код]¶
Базовые классы:
Event,GenericСобытие, возникающее при изменении одиночного реактивного состояния.
- property new_value: T¶
- property sender: Any¶
Возвращает отправителя события.
- class EJIO.ctk_extender.StyleFlags(*values)[исходный код]¶
Базовые классы:
IntEnumПобитовые флаги оформления внешнего вида уведомлений. Позволяют декларативно конструировать фон, рамки и скругления.
- BORDER_NONE = 16¶
- BORDER_THICK = 64¶
- BORDER_THIN = 32¶
- DEFAULT = 41¶
- FILLED = 1¶
- ROUNDED = 8¶
- SQUARE = 4¶
- TRANSPARENT = 2¶
- class EJIO.ctk_extender.SuccessNotification(parent: Any, flags: StyleFlags = StyleFlags.DEFAULT, message: str | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
BaseNotificationВстроенное уведомление об успешной операции (Зеленый стиль).
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Парсит побитовые флаги и собирает пустую оболочку фона.
- class EJIO.ctk_extender.TableWidget(parent: Any, data_list: ReactiveList[list[str]], headers: list[str] | None = None, max_visible_rows: int | None = None, placeholder_text: str = 'Нет данных для отображения', geometry: GeometryStrategy | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetВысокоуровневый реактивный компонент таблицы на базе ScrollableFrame. Автоматически перерисовывает строки при изменении привязанного ReactiveList. Использует менеджер разметки Grid для отрисовки ячеек.
- build() <MagicMock name='mock.CTkScrollableFrame' id='140416955856944'>[исходный код]¶
Строит прокручиваемый контейнер для таблицы с учетом ограничений высоты.
- destroy() None[исходный код]¶
Очищает ячейки и каскадно уничтожает контейнер таблицы.
- class EJIO.ctk_extender.Tabview(parent: Any, tabs: list[str], geometry: GeometryStrategy | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
WidgetContainerКомпонент многовкладочного интерфейса (на базе ctk.CTkTabview).
- add_widget_to_tab(tab_name: str, widget_cls: type[W], *args: Any, **kwargs: Any) W[исходный код]¶
Фабричный метод для добавления виджета на конкретную вкладку компонента Tabview.
- Параметры:
tab_name – Имя вкладки.
widget_cls – Виджет для добавления.
args – Аргументы для инициализации виджета.
kwargs – Ключевые аргументы для инициализации виджета.
- build() <MagicMock name='mock.CTkTabview' id='140416957562224'>[исходный код]¶
Строит базовый контейнерный фрейм. Может быть переопределен в дочерних классах (например, для настройки бордеров или цвета).
- class EJIO.ctk_extender.WarningNotification(parent: Any, flags: StyleFlags = StyleFlags.DEFAULT, message: str | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
BaseNotificationВстроенное уведомление-предупреждение (Оранжевый стиль).
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Парсит побитовые флаги и собирает пустую оболочку фона.
- class EJIO.ctk_extender.Widget(parent: <MagicMock name = 'mock.CTk.__or__().__or__().__or__()' id='140416956849216'>, geometry: GeometryStrategy | None = None, **kwargs: Any)[исходный код]¶
Базовые классы:
ABCБазовый абстрактный класс для всех элементов интерфейса ctk_extender. Автоматически управляет жизненным циклом, геометрией и декларативными подписками на события.
- abstractmethod build() <MagicMock name='mock.CTkBaseClass' id='140416957414240'>[исходный код]¶
Абстрактный метод сборки компонента. Должен быть переопределен в наследниках. Внутри него создаются и конфигурируются реальные ctk-объекты.
- Результат:
Экземпляр реального ctk-виджета (например, ctk.CTkButton).
- Исключение:
NotImplementedError – Должен быть определен в подклассе.
- property ctk_instance: <MagicMock name='mock.CTkBaseClass' id='140416957414240'>¶
Возвращает ссылку на реальный объект customtkinter.
- Исключение:
WidgetNotInitializedError – Если инстанс не инициализирован.
- destroy() None[исходный код]¶
Полностью уничтожает виджет, очищая память и удаляя его глобальные подписки.
- focus() None[исходный код]¶
Переводит фокус ввода операционной системы на данный виджет.
- mount() Self[исходный код]¶
Размещает виджет на родительском контейнере в соответствии с заданным методом геометрии.
- property parent: Any¶
Возвращает родительский контейнер виджета.
- set_geometry(geometry: GeometryStrategy) Self[исходный код]¶
Позволяет динамически на лету переключить менеджер разметки виджета (например, перекинуть его из pack в grid без пересоздания объекта).
- Параметры:
geometry – Объект стратегии геометрии.
- unmount() Self[исходный код]¶
Скрывает виджет с экрана, извлекая его из менеджера геометрии, но сохраняя состояние объекта в памяти.
- class EJIO.ctk_extender.WidgetContainer(parent: <MagicMock name = 'mock.CTk.__or__().__or__().__or__()' id='140416956849216'>, geometry: GeometryStrategy | None = None)[исходный код]¶
Базовые классы:
WidgetКомпонент-контейнер, объединяющий несколько виджетов внутри единого фрейма (CTkFrame). Автоматически каскадно управляет жизненным циклом и уничтожением всех дочерних элементов.
- add_widget(widget_cls: type[W], *args: Any, **kwargs: Any) W[исходный код]¶
Фабричный метод для динамического создания и добавления виджета внутрь контейнера. Автоматически передает ctk_instance текущего контейнера в качестве родителя.
- Параметры:
widget_cls – Класс создаваемого виджета (наследник Widget).
args – Позиционные аргументы для конструктора виджета.
kwargs – Именованные аргументы для конструктора виджета.
- Результат:
Созданный экземпляр виджета.
- build() <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]¶
Строит базовый контейнерный фрейм. Может быть переопределен в дочерних классах (например, для настройки бордеров или цвета).
- destroy() None[исходный код]¶
Каскадно уничтожает сам контейнер и все вложенные в него дочерние виджеты, полностью очищая оперативную память.
- remove_widget(widget: W) Self[исходный код]¶
Удаляет виджет из контейнера и уничтожает его ресурсы.
- Параметры:
widget – Экземпляр уничтожаемого виджета.
- class EJIO.ctk_extender.Window(is_main: bool = False)[исходный код]¶
Базовые классы:
ABCАбстрактный базовый класс окна приложения. Управляет собственным навигационным стеком макетов и системными событиями.
- property active_layout_canvas: Any¶
Возвращает нативный Си-фрейм текущего активного макета, развернутого на экране.
- center() None[исходный код]¶
Математически точно центрирует окно по центру текущего активного монитора, на котором оно физически находится. Защищено от многомониторных сбоев.
- config: WindowConfig = ('base_window', 'builtins.blank', 'Application default window', 800, 600, None, None, True, True)¶
- property ctk_instance: <MagicMock name='mock.CTk.__or__()' id='140416957403200'>¶
Возвращает ссылку на реальный инстанс окна customtkinter.
- destroy() None[исходный код]¶
Каскадно уничтожает стек макетов окна, удаляет окно из глобального контроллера и закрывает физический ctk_instance.
- focus() Self[исходный код]¶
Переводит фокус ввода на данное окно и выводит его на передний план.
- classmethod get_default_config() WindowConfig[исходный код]¶
Возвращает базовый конфиг, если свойство класса не переопределено.
- maximize() Self[исходный код]¶
Разворачивает окно на весь доступный экран.
- minimize() Self[исходный код]¶
Сворачивает окно в панель задач операционной системы.
- mount() None[исходный код]¶
Вызывается фасадом Application сразу после успешного вывода окна на экран.
- property name: str¶
Возвращает уникальное имя окна.
- on_mounted() None[исходный код]¶
Пользовательский хук жизненного цикла. Переопределяется в дочерних окнах.
- pop_layout() Self[исходный код]¶
Уничтожает текущий экран и пробуждает предыдущий из стека (Кнопка Назад).
- push_layout(layout_name: str) Self[исходный код]¶
Усыпляет текущий активный экран и пушит новый на вершину стека (мобильная навигация).
- resize(width: int, height: int) Self[исходный код]¶
Изменяет геометрические размеры окна.
- restore() Self[исходный код]¶
Восстанавливает нормальный размер окна (из свернутого или развернутого состояния).
- property screenshot: Image¶
Делает скриншот текущего окна.
- Параметры:
output_path – Путь для сохранения (опционально).
- Результат:
Объект PIL Image.
- switch_layout(layout_name: str) Self[исходный код]¶
Полностью очищает стек разметки и монтирует новый экран. Старый экран полностью выгружается из памяти.
- class EJIO.ctk_extender.WindowConfig(name: str = 'default_window', initial_layout: str | None = 'builtins.blank', title: str = 'Application default window', width: int = 800, height: int = 600, x_pos: int | None = None, y_pos: int | None = None, resizable_x: bool = True, resizable_y: bool = True)[исходный код]¶
Базовые классы:
NamedTupleПолная структура метаданных, геометрии и навигации окна.
- height: int¶
Alias for field number 4
- initial_layout: str | None¶
Alias for field number 1
- name: str¶
Alias for field number 0
- resizable_x: bool¶
Alias for field number 7
- resizable_y: bool¶
Alias for field number 8
- title: str¶
Alias for field number 2
- width: int¶
Alias for field number 3
- x_pos: int | None¶
Alias for field number 5
- y_pos: int | None¶
Alias for field number 6
- EJIO.ctk_extender.get_layout(window_name: str, layout_name: str) type[Layout][исходный код]¶
Безопасно извлекает класс макета для указанного окна.
- Параметры:
window_name – Имя управляющего окна (префикс).
layout_name – Имя целевого макета.
- Результат:
Класс Layout.
- EJIO.ctk_extender.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 – Опционально: функция-фильтр условий.
- Результат:
Функцию, обарачивающую указанный коллбэк для события.
- EJIO.ctk_extender.popup_color(title: str, initial_color: str | Color = '#FFFFFF') Color | None[исходный код]¶
Открывает палитру и синхронно возвращает объект Color или None.
- EJIO.ctk_extender.popup_confirm(title: str, message: str, on_callback: Callable[[bool], None], /, *, timeout: float | None = None) None[исходный код]¶
Выводит модальный диалог подтверждения с кнопками Да/Нет. Результат выбора (True/False) передается аргументом в on_callback.
- EJIO.ctk_extender.popup_date(title: str, initial_date: date | None = None) date | None[исходный код]¶
Открывает календарь и синхронно возвращает дату или None.
- EJIO.ctk_extender.popup_directory(title: str = 'Select folder') str | None[исходный код]¶
Синхронный диалог выбора папки. Возвращает абсолютный путь в виде строки или None.
- EJIO.ctk_extender.popup_file(title: str = 'Select file', file_types: list[tuple[str, str]] | None = None, multiple: bool = False, single_only: bool = True) str | list[str] | None[исходный код]¶
Синхронный диалог выбора файлов с фильтром расширений и контролем количества.
- Параметры:
file_types – Список кортежей ограничений, например: [(«Изображения», «.png;.jpg»), («Все файлы», «.»)]
multiple – Если True, разрешает множественный выбор файлов (Ctrl+Клик)
single_only – Если True, то даже при multiple=True вернет ошибку или жестко обрежет массив до 1 элемента
- EJIO.ctk_extender.popup_image(title: str, source: str | Path | bytes, /, *, timeout: float | None = None) None[исходный код]¶
Открывает независимое неблокирующее окно просмотра изображения. Позволяет пользователю параллельно работать с главным интерфейсом приложения.
- EJIO.ctk_extender.popup_info(title: str, message: str, /, *, timeout: float | None = None) None[исходный код]¶
Выводит быстрое информационное модальное окно уведомления.
- EJIO.ctk_extender.popup_warning(title: str, message: str, /, *, timeout: float | None = None) None[исходный код]¶
Выводит модальное окно предупреждения или критической ошибки.
- EJIO.ctk_extender.register_layout(key: str) Callable[[type[E]], type[E]][исходный код]¶
Декоратор для автоматической регистрации окон в LayoutRouter.
- Параметры:
key – Ключ, под которым объект будет храниться в реестре.
- Результат:
Обертку, выполняющую регистрацию класса.
- EJIO.ctk_extender.register_window(window_cls: type[Window]) type[Window][исходный код]¶
Декоратор для автоматической регистрации окон в WindowRegistry.
- EJIO.ctk_extender.set_appearance_mode(mode: Literal['System', 'Dark', 'Light'], /) None[исходный код]¶
Устанавливает глобальный режим отображения темы интерфейса.
Допустимые значения: - „System“: Автоматическая синхронизация с темой операционной системы. - „Dark“: Принудительный темный режим оформления. - „Light“: Принудительный светлый режим оформления.
- Параметры:
mode – Режим темы („System“, „Dark“, „Light“).
- EJIO.ctk_extender.set_color_theme(theme: Literal['blue', 'green', 'dark-blue'], /) None[исходный код]¶
Устанавливает базовую цветовую палитру (карту цветов) для виджетов CustomTkinter.
Допустимые значения: - „blue“: Классическая синяя цветовая схема. - „green“: Экологичная зеленая цветовая схема. - „dark-blue“: Современная темно-синяя палитра.
- Параметры:
theme – Имя темы („blue“, „green“, „dark-blue“).