EJIO.ctk_extender.window package¶

Submodules¶
EJIO.ctk_extender.window.base module¶
- class EJIO.ctk_extender.window.base.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[исходный код]¶
Полностью очищает стек разметки и монтирует новый экран. Старый экран полностью выгружается из памяти.
EJIO.ctk_extender.window.config module¶
- class EJIO.ctk_extender.window.config.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.window.controller module¶
- class EJIO.ctk_extender.window.controller.WindowController(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
StaticClassСтатический контроллер рантайм-операций над окнами. Управляет живыми экземплярами окон, их размерами, фокусом и состояниями.
- classmethod clear() None[исходный код]¶
Закрывает абсолютно все активные окна приложения и очищает реестр.
- classmethod close_window(name: str) None[исходный код]¶
Принудительно закрывает окно по имени и удаляет его из рантайм-реестра, сохраняя его финальные координаты сессии.
- classmethod get_active(name: str) Window[исходный код]¶
Возвращает живой экземпляр запущенного окна.
- classmethod open_window(name: str, *args: Any, **kwargs: Any) Window[исходный код]¶
Создает, регистрирует и выводит на экран окно, используя WindowRegistry. Если окно уже открыто, просто переводит на него фокус.
- Параметры:
name – Имя окна, под которым оно зарегистрировано в WindowRegistry.
args – Аргументы для инициализации окна.
kwargs – Ключевые аргументы для инициализации окна.
- Результат:
Созданный живой экземпляр Window.
EJIO.ctk_extender.window.err module¶
- exception EJIO.ctk_extender.window.err.CtkExtenderWindowError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderBaseErrorБазовое исключение пакента window пакета ctk_extender.
- exception EJIO.ctk_extender.window.err.IncorrectWindowTypeError(message: str)[исходный код]¶
Базовые классы:
WindowRegistryErrorИсключение связанное с некорректной попыткой регистрации окна.
- exception EJIO.ctk_extender.window.err.WindowAlreadyRegisteredError(message: str)[исходный код]¶
Базовые классы:
WindowRegistryErrorИсключение связанное с ошибкой перезаписи зарегестрированного окна.
- exception EJIO.ctk_extender.window.err.WindowInstanceMissingError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderWindowErrorИсключение связанное с ошибкой доступа к экземпляру окна.
- exception EJIO.ctk_extender.window.err.WindowNotActiveError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderWindowErrorИсключение связанное с ошибкой доступа к неинициализированному окну.
- exception EJIO.ctk_extender.window.err.WindowNotFoundError(message: str)[исходный код]¶
Базовые классы:
WindowRegistryErrorИсключение связанное с ошибкой остутствия искомого окна в реестре.
- exception EJIO.ctk_extender.window.err.WindowRegistryError(message: str)[исходный код]¶
Базовые классы:
CtkExtenderWindowErrorБазовое исключение связанное с работой реестра окон.
EJIO.ctk_extender.window.registry module¶
- class EJIO.ctk_extender.window.registry.WindowRegistry(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
Registry[Window],GenericСтатический реестр классов окон приложения.
- classmethod get(key: str) type[T][исходный код]¶
Возвращает зарегистрированный класс по его ключу из текущего регистра.
- Параметры:
key – Строковый ключ.
- Результат:
Класс, сохраненный под этим ключом.
- Исключение:
RegistryKeyError – Если класс с таким ключом не найден.
- EJIO.ctk_extender.window.registry.register_window(window_cls: type[Window]) type[Window][исходный код]¶
Декоратор для автоматической регистрации окон в WindowRegistry.
EJIO.ctk_extender.window.session module¶
- class EJIO.ctk_extender.window.session.WindowSessionManager(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
StaticClass,DisposableСтатический менеджер сохранения и восстановления геометрии окон. Защищает интерфейс от „вылета“ окон за пределы физических экранов.
- classmethod clear() None[исходный код]¶
Реализация Disposable: сбрасывает кэш сессий.
- classmethod get_stored_geometry(window_name: str) WindowGeometryData | None[исходный код]¶
Возвращает сохраненную геометрию окна, если она валидна и полностью помещается в границы активных мониторов.
- classmethod load_sessions() None[исходный код]¶
Лениво считывает файл сохраненных сессий с диска.
- classmethod save_sessions() None[исходный код]¶
Записывает кэшированные сессии окон на диск.
- classmethod store_geometry(window_name: str, width: int, height: int, x: int, y: int) None[исходный код]¶
Сохраняет геометрию окна в рантайм-кэш менеджера сессий.
Module contents¶
- class EJIO.ctk_extender.window.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.window.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
- class EJIO.ctk_extender.window.WindowController(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
StaticClassСтатический контроллер рантайм-операций над окнами. Управляет живыми экземплярами окон, их размерами, фокусом и состояниями.
- classmethod clear() None[исходный код]¶
Закрывает абсолютно все активные окна приложения и очищает реестр.
- classmethod close_window(name: str) None[исходный код]¶
Принудительно закрывает окно по имени и удаляет его из рантайм-реестра, сохраняя его финальные координаты сессии.
- classmethod get_active(name: str) Window[исходный код]¶
Возвращает живой экземпляр запущенного окна.
- classmethod open_window(name: str, *args: Any, **kwargs: Any) Window[исходный код]¶
Создает, регистрирует и выводит на экран окно, используя WindowRegistry. Если окно уже открыто, просто переводит на него фокус.
- Параметры:
name – Имя окна, под которым оно зарегистрировано в WindowRegistry.
args – Аргументы для инициализации окна.
kwargs – Ключевые аргументы для инициализации окна.
- Результат:
Созданный живой экземпляр Window.
- class EJIO.ctk_extender.window.WindowRegistry(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
Registry[Window],GenericСтатический реестр классов окон приложения.
- classmethod get(key: str) type[T][исходный код]¶
Возвращает зарегистрированный класс по его ключу из текущего регистра.
- Параметры:
key – Строковый ключ.
- Результат:
Класс, сохраненный под этим ключом.
- Исключение:
RegistryKeyError – Если класс с таким ключом не найден.
- class EJIO.ctk_extender.window.WindowSessionManager(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
StaticClass,DisposableСтатический менеджер сохранения и восстановления геометрии окон. Защищает интерфейс от „вылета“ окон за пределы физических экранов.
- classmethod clear() None[исходный код]¶
Реализация Disposable: сбрасывает кэш сессий.
- classmethod get_stored_geometry(window_name: str) WindowGeometryData | None[исходный код]¶
Возвращает сохраненную геометрию окна, если она валидна и полностью помещается в границы активных мониторов.
- classmethod load_sessions() None[исходный код]¶
Лениво считывает файл сохраненных сессий с диска.
- classmethod save_sessions() None[исходный код]¶
Записывает кэшированные сессии окон на диск.
- classmethod store_geometry(window_name: str, width: int, height: int, x: int, y: int) None[исходный код]¶
Сохраняет геометрию окна в рантайм-кэш менеджера сессий.
- EJIO.ctk_extender.window.register_window(window_cls: type[Window]) type[Window][исходный код]¶
Декоратор для автоматической регистрации окон в WindowRegistry.