EJIO.ctk_extender.components package

Inheritance diagram of 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

Submodules

EJIO.ctk_extender.components.color_picker module

class EJIO.ctk_extender.components.color_picker.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 – Должен быть определен в подклассе.

EJIO.ctk_extender.components.copyable_field module

class EJIO.ctk_extender.components.copyable_field.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[исходный код]

Каскадно уничтожает сам контейнер и все вложенные в него дочерние виджеты, полностью очищая оперативную память.

EJIO.ctk_extender.components.date_picker module

class EJIO.ctk_extender.components.date_picker.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 – Должен быть определен в подклассе.

EJIO.ctk_extender.components.event module

class EJIO.ctk_extender.components.event.FieldReturnEvent(sender: Any, field_name: str)[исходный код]

Базовые классы: Event

Триггерится при нажатии Enter внутри текстовых полей формы.

field_name: str

EJIO.ctk_extender.components.image module

class EJIO.ctk_extender.components.image.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[исходный код]

Публичный метод: динамически загружает новое изображение в созданный контейнер.

EJIO.ctk_extender.components.labeled_field module

class EJIO.ctk_extender.components.labeled_field.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.

EJIO.ctk_extender.components.localization module

EJIO.ctk_extender.components.login_form module

class EJIO.ctk_extender.components.login_form.LoginForm(parent: Any, geometry: Any = None)[исходный код]

Базовые классы: Form

Высокоуровневый составной компонент формы авторизации.

build() → <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]

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

EJIO.ctk_extender.components.scrollable_container module

class EJIO.ctk_extender.components.scrollable_container.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.

EJIO.ctk_extender.components.section module

class EJIO.ctk_extender.components.section.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[исходный код]

Каскадно уничтожает сам контейнер и все вложенные в него дочерние виджеты, полностью очищая оперативную память.

EJIO.ctk_extender.components.table module

class EJIO.ctk_extender.components.table.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[исходный код]

Очищает ячейки и каскадно уничтожает контейнер таблицы.

Module contents

class EJIO.ctk_extender.components.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.components.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.components.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.components.FieldReturnEvent(sender: Any, field_name: str)[исходный код]

Базовые классы: Event

Триггерится при нажатии Enter внутри текстовых полей формы.

field_name: str
class EJIO.ctk_extender.components.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.components.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.components.LoginForm(parent: Any, geometry: Any = None)[исходный код]

Базовые классы: Form

Высокоуровневый составной компонент формы авторизации.

build() → <MagicMock name='mock.CTkFrame' id='140416972239120'>[исходный код]

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

class EJIO.ctk_extender.components.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.components.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.components.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[исходный код]

Очищает ячейки и каскадно уничтожает контейнер таблицы.