Исходный код EJIO.ctk_extender.layout.base
## /ctk_extender/layout/base.py
import customtkinter as ctk
from typing import Any
from ..widget import WidgetContainer, GeometryStrategy, PackStrategy
__all__ = [
'Layout',
]
[документация]
class Layout(WidgetContainer):
"""
Базовый класс для экранов (страниц) приложения.
Изолирован от базовых виджетов и управляется навигационным стеком окна.
"""
def __init__(
self,
parent: ctk.CTk | ctk.CTkToplevel | Any,
geometry: GeometryStrategy | None = None
) -> None:
default_geometry = geometry or PackStrategy(fill="both", expand=True)
super().__init__(parent, default_geometry)
[документация]
def build(self) -> ctk.CTkFrame:
return ctk.CTkFrame(self.parent, fg_color="transparent", corner_radius=0, border_width=0)
[документация]
def on_show(self) -> None:
"""Хук жизненного цикла: макет выведен на экран (стал активным)."""
pass
[документация]
def on_hide(self) -> None:
"""Хук жизненного цикла: макет скрыт (ушел вглубь стека или закрывается)."""
pass
[документация]
def destroy(self) -> None:
self.on_hide()
super().destroy()