EJIO.ctk_extender.widget.form package

Inheritance diagram of 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.base.InputField, 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

Subpackages

Submodules

EJIO.ctk_extender.widget.form.base module

class EJIO.ctk_extender.widget.form.base.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.

EJIO.ctk_extender.widget.form.events module

class EJIO.ctk_extender.widget.form.events.FormReadyEvent(target_form: Any)[исходный код]

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

Событие-ответ, сообщающее форме, что её обработка завершена и она может принимать новые клики.

property target_form: Any
class EJIO.ctk_extender.widget.form.events.FormSubmittedEvent(sender: Any, data: dict[str, Any])[исходный код]

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

Событие, возникающее при успешной валидации и отправке формы.

property data: dict[str, Any]
class EJIO.ctk_extender.widget.form.events.FormValidationErrorEvent(sender: Any, errors: dict[str, str])[исходный код]

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

Событие, возникающее, если форма не прошла валидацию.

property errors: dict[str, str]

Module contents

class EJIO.ctk_extender.widget.form.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.widget.form.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.widget.form.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.widget.form.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.widget.form.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.widget.form.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.widget.form.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.widget.form.FormReadyEvent(target_form: Any)[исходный код]

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

Событие-ответ, сообщающее форме, что её обработка завершена и она может принимать новые клики.

property target_form: Any
class EJIO.ctk_extender.widget.form.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.widget.form.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.widget.form.FormSubmittedEvent(sender: Any, data: dict[str, Any])[исходный код]

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

Событие, возникающее при успешной валидации и отправке формы.

property data: dict[str, Any]
class EJIO.ctk_extender.widget.form.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.widget.form.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.widget.form.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.widget.form.FormValidationErrorEvent(sender: Any, errors: dict[str, str])[исходный код]

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

Событие, возникающее, если форма не прошла валидацию.

property errors: dict[str, str]
class EJIO.ctk_extender.widget.form.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.