pubsubtk.ui.base.template_base¶
pubsubtk.ui.base.template_base ¶
複数スロットを持つテンプレート UI を構築するための基底クラス。
TemplateMixin ¶
TemplateMixin(store: Store[TState], *args, **kwargs)
Bases: ABC
, Generic[TState]
テンプレートコンポーネント用のMixin。
複数のスロット(区画)を定義し、各スロットに独立してコンポーネントを配置できる。 ヘッダー・フッターなど固定部分と可変部分を分離したレイアウトを実現。
Note
テンプレート自体は状態を持たず、レイアウト定義とスロット管理のみを行う。 各スロットに配置されるコンポーネントが独自に状態管理を行う。
Mixin の初期化処理。
Source code in src/pubsubtk/ui/base/template_base.py
setup_template ¶
define_slots
abstractmethod
¶
スロット(区画)を定義する。
Returns:
Type | Description |
---|---|
Dict[str, Widget]
|
Dict[str, tk.Widget]: {"スロット名": フレームWidget} の辞書 |
Example
ヘッダー¶
self.header_frame = tk.Frame(self, height=60, bg='navy') self.header_frame.pack(fill=tk.X)
メインコンテンツ¶
self.main_frame = tk.Frame(self) self.main_frame.pack(fill=tk.BOTH, expand=True)
フッター¶
self.footer_frame = tk.Frame(self, height=30, bg='gray') self.footer_frame.pack(fill=tk.X)
return { "header": self.header_frame, "main": self.main_frame, "footer": self.footer_frame }
Source code in src/pubsubtk/ui/base/template_base.py
switch_slot_content ¶
指定スロットのコンテンツを切り替える。
Parameters:
Name | Type | Description | Default |
---|---|---|---|
slot_name
|
str
|
スロット名 |
required |
cls
|
ComponentType
|
コンポーネントクラス(Container/Presentational両対応) |
required |
kwargs
|
dict
|
コンポーネントに渡す引数 |
None
|
Source code in src/pubsubtk/ui/base/template_base.py
get_slots ¶
get_slot_content ¶
has_slot ¶
clear_slot ¶
TemplateComponentTk ¶
TemplateComponentTk(parent: Widget, store: Store[TState], *args, **kwargs)
Bases: TemplateMixin[TState]
, Frame
, Generic[TState]
標準tk.Frameベースのテンプレートコンポーネント。
tk.Frame ベースのテンプレートを初期化する。
Source code in src/pubsubtk/ui/base/template_base.py
TemplateComponentTtk ¶
TemplateComponentTtk(parent: Widget, store: Store[TState], *args, **kwargs)
Bases: TemplateMixin[TState]
, Frame
, Generic[TState]
テーマ対応ttk.Frameベースのテンプレートコンポーネント。
ttk.Frame ベースのテンプレートを初期化する。