EJIO.ctk_extender package

Inheritance diagram of EJIO.ctk_extender.event.base.Event, EJIO.ctk_extender.event.listener.EventListener, EJIO.ctk_extender.state.events.StateChangedEvent, EJIO.ctk_extender.state.events.CollectionChangedEvent, EJIO.ctk_extender.state.events.DictionaryChangedEvent, EJIO.ctk_extender.state.reactive.State, EJIO.ctk_extender.state.model.ReactiveModel, EJIO.ctk_extender.state.collection.ReactiveList, EJIO.ctk_extender.state.collection.ReactiveDict, EJIO.ctk_extender.widget.base.Widget, EJIO.ctk_extender.widget.container.WidgetContainer, EJIO.ctk_extender.widget.geometry.base.GeometryStrategy, EJIO.ctk_extender.widget.geometry.implementations.PackStrategy, EJIO.ctk_extender.widget.geometry.implementations.GridStrategy, EJIO.ctk_extender.widget.geometry.implementations.PlaceStrategy, EJIO.ctk_extender.widget.form.base.Form, EJIO.ctk_extender.widget.form.fields.base.InputField, EJIO.ctk_extender.widget.form.events.FormSubmittedEvent, EJIO.ctk_extender.widget.form.events.FormValidationErrorEvent, EJIO.ctk_extender.widget.form.events.FormReadyEvent, EJIO.ctk_extender.widget.form.fields.text.FormTextField, EJIO.ctk_extender.widget.form.fields.checkbox.FormCheckBox, EJIO.ctk_extender.widget.form.fields.combobox.FormComboBox, EJIO.ctk_extender.widget.form.fields.slider.FormSlider, EJIO.ctk_extender.widget.form.fields.switch.FormSwitch, EJIO.ctk_extender.widget.form.fields.radio.FormRadioButtonGroup, EJIO.ctk_extender.widget.form.fields.segmented.FormSegmentedButton, EJIO.ctk_extender.widget.form.fields.textbox.FormTextBox, EJIO.ctk_extender.widget.form.fields.file.FormFileField, EJIO.ctk_extender.widget.form.fields.directory.FormDirectoryField, EJIO.ctk_extender.widget.form.fields.option_menu.FormOptionMenuField, EJIO.ctk_extender.widget.components.button.Button, EJIO.ctk_extender.widget.components.label.Label, EJIO.ctk_extender.widget.components.progress.ProgressBar, EJIO.ctk_extender.widget.components.scrollable.ScrollableFrame, EJIO.ctk_extender.widget.components.tabview.Tabview, EJIO.ctk_extender.layout.base.Layout, EJIO.ctk_extender.window.config.WindowConfig, EJIO.ctk_extender.window.base.Window, EJIO.ctk_extender.notification.flags.StyleFlags, EJIO.ctk_extender.notification.base.BaseNotification, EJIO.ctk_extender.app.base.Application, EJIO.ctk_extender.components.table.TableWidget, EJIO.ctk_extender.components.image.ImageWidget, EJIO.ctk_extender.components.labeled_field.FormLabeledField, EJIO.ctk_extender.components.scrollable_container.ScrollableContainer, EJIO.ctk_extender.components.section.Section, EJIO.ctk_extender.components.copyable_field.CopyableField, EJIO.ctk_extender.components.color_picker.ColorPicker, EJIO.ctk_extender.components.date_picker.DatePicker, EJIO.ctk_extender.components.login_form.LoginForm, EJIO.ctk_extender.components.event.FieldReturnEvent, EJIO.ctk_extender.windows.notification.info.InfoNotification, EJIO.ctk_extender.windows.notification.success.SuccessNotification, EJIO.ctk_extender.windows.notification.warning.WarningNotification, EJIO.ctk_extender.windows.notification.error.ErrorNotification, EJIO.ctk_extender.windows.layout.blank.BlankLayout, EJIO.ctk_extender.windows.layout.login.LoginLayout

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
navigate_to(window_name: str, layout_name: str) → None[исходный код]

Переключает текущий макет указанного окна (с полной очисткой стека).

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'>[исходный код]

Строит базовый контейнерный фрейм. Может быть переопределен в дочерних классах (например, для настройки бордеров или цвета).

property children: List[Widget]

Возвращает список всех дочерних виджетов в контейнере.

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“).