Bases: Toplevel, BWm, DObject
Fluent设计的子窗口
源代码位于: tkflu\toplevel.py
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 | class FluToplevel(Toplevel, BWm, DObject):
"""Fluent设计的子窗口"""
def __init__(self, *args, mode="light", **kwargs):
"""
初始化类
:param args: 参照tkinter.TK.__init__
:param className: 参照tkinter.TK.__init__
:param mode: Fluent主题模式 分为 “light” “dark”
:param kwargs: 参照tkinter.TK.__init__
"""
Toplevel.__init__(self, *args, **kwargs)
self._init(mode)
self.custom = False
# 设置窗口图标:直接用内嵌 base64 建图,不落盘(见 .icons 模块说明)
from .icons import icon_photoimage
self._icon_photo = icon_photoimage("light", master=self)
self.iconphoto(False, self._icon_photo)
self.bind("<Configure>", self._event_configure, add="+")
self.bind("<Escape>", self._event_key_esc, add="+")
self.protocol("WM_DELETE_WINDOW", self._event_delete_window)
def destroy(self):
"""关闭子窗口前先回收待执行的 ``after`` 回调(详见 :mod:`tkflu._after`)。"""
from ._after import cancel_all_after
cancel_all_after(self)
super().destroy()
def theme(self, mode: str):
"""把子窗口(连同里面的控件)切到 ``mode``。
实现交给 :meth:`tkflu.bwm.BWm.theme`(统一过渡)。
旧实现是逐个 ``widget.theme()`` + ``widget.update()``——那正是
"一个一个变色、期间窗口点不动"的根源。
"""
super().theme(mode)
self._mode = mode
|
__init__(*args, mode='light', **kwargs)
初始化类
:param args: 参照tkinter.TK.init
:param className: 参照tkinter.TK.init
:param mode: Fluent主题模式 分为 “light” “dark”
:param kwargs: 参照tkinter.TK.init
源代码位于: tkflu\toplevel.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 | def __init__(self, *args, mode="light", **kwargs):
"""
初始化类
:param args: 参照tkinter.TK.__init__
:param className: 参照tkinter.TK.__init__
:param mode: Fluent主题模式 分为 “light” “dark”
:param kwargs: 参照tkinter.TK.__init__
"""
Toplevel.__init__(self, *args, **kwargs)
self._init(mode)
self.custom = False
# 设置窗口图标:直接用内嵌 base64 建图,不落盘(见 .icons 模块说明)
from .icons import icon_photoimage
self._icon_photo = icon_photoimage("light", master=self)
self.iconphoto(False, self._icon_photo)
self.bind("<Configure>", self._event_configure, add="+")
self.bind("<Escape>", self._event_key_esc, add="+")
self.protocol("WM_DELETE_WINDOW", self._event_delete_window)
|
destroy()
关闭子窗口前先回收待执行的 after 回调(详见 :mod:tkflu._after)。
源代码位于: tkflu\toplevel.py
| def destroy(self):
"""关闭子窗口前先回收待执行的 ``after`` 回调(详见 :mod:`tkflu._after`)。"""
from ._after import cancel_all_after
cancel_all_after(self)
super().destroy()
|
theme(mode)
把子窗口(连同里面的控件)切到 mode。
实现交给 :meth:tkflu.bwm.BWm.theme(统一过渡)。
旧实现是逐个 widget.theme() + widget.update()——那正是
"一个一个变色、期间窗口点不动"的根源。
源代码位于: tkflu\toplevel.py
49
50
51
52
53
54
55
56
57 | def theme(self, mode: str):
"""把子窗口(连同里面的控件)切到 ``mode``。
实现交给 :meth:`tkflu.bwm.BWm.theme`(统一过渡)。
旧实现是逐个 ``widget.theme()`` + ``widget.update()``——那正是
"一个一个变色、期间窗口点不动"的根源。
"""
super().theme(mode)
self._mode = mode
|