Исходный код EJIO.ctk_extender.widget.geometry.base

## /ctk_extender/widget/geometry/base.py

import customtkinter as ctk
from abc import ABC, abstractmethod
from typing import Any

__all__ = [
    'GeometryStrategy',
]


[документация] class GeometryStrategy(ABC): """ Абстрактный базовый класс для стратегий позиционирования (менеджеров геометрии). Инкапсулирует параметры разметки и управляет монтированием виджета. """ __slots__ = ('_kwargs',) def __init__(self, **kwargs: Any) -> None: """ :param kwargs: Специфичные параметры для конкретного менеджера геометрии. """ self._kwargs: dict[str, Any] = kwargs
[документация] @abstractmethod def mount(self, instance: ctk.CTkBaseClass) -> None: """Отрисовывает (монтирует) переданный виджет на родителе.""" raise NotImplementedError
[документация] @abstractmethod def unmount(self, instance: ctk.CTkBaseClass) -> None: """Скрывает (размонтирует) переданный виджет, убирая его с экрана.""" raise NotImplementedError
def __del__(self) -> None: """Деструктор стратегии для предотвращения утечек памяти.""" self._kwargs.clear()