EJIO.ctk_extender.window package

Inheritance diagram of EJIO.ctk_extender.window.config.WindowConfig, EJIO.ctk_extender.window.base.Window, EJIO.ctk_extender.window.registry.WindowRegistry, EJIO.ctk_extender.window.session.WindowSessionManager, EJIO.ctk_extender.window.controller.WindowController

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.