修改Calman灰阶中结果图显示、修改UI主题样式应用
This commit is contained in:
@@ -19,20 +19,44 @@ from app.views.modern_styles import apply_modern_styles
|
||||
|
||||
_PREFS_PATH = Path("settings/ui_preferences.json")
|
||||
|
||||
# 浅色主题:沿用旧的 yeti(首发布兼容)
|
||||
LIGHT_THEME = "yeti"
|
||||
# 浅色主题:自定义轻量蓝灰色板,恢复旧版浅色观感
|
||||
LIGHT_THEME = "calman_light"
|
||||
# 深色主题:自定义 Calman 风格
|
||||
DARK_THEME = "calman_dark"
|
||||
|
||||
_LEGACY_LIGHT_THEMES = {"yeti"}
|
||||
|
||||
|
||||
_CALMAN_LIGHT_COLORS = {
|
||||
"primary": "#1755a6",
|
||||
"secondary": "#2B6CB0",
|
||||
"success": "#2F9E44",
|
||||
"info": "#247BA0",
|
||||
"warning": "#C98700",
|
||||
"danger": "#CC3300",
|
||||
"light": "#F7FAFC",
|
||||
"dark": "#1F2A36",
|
||||
"bg": "#F5F8FB",
|
||||
"fg": "#1F2933",
|
||||
"selectbg": "#2B6CB0",
|
||||
"selectfg": "#FFFFFF",
|
||||
"border": "#C8D4E3",
|
||||
"inputfg": "#243240",
|
||||
"inputbg": "#FFFFFF",
|
||||
"active": "#D9E6F2",
|
||||
}
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Calman 风格深色主题色板(参考实测截图取色)
|
||||
# Calman 风格深色主题色板
|
||||
# ----------------------------------------------------------------------
|
||||
_CALMAN_DARK_COLORS = {
|
||||
"primary": "#343A41", # 主色改为炭灰,避免大面积亮蓝
|
||||
"secondary": "#444A51", # 中性深灰(用于 header / 分组背景)
|
||||
# "primary": "#2A2F36",
|
||||
# "secondary": "#444A51",
|
||||
"primary": "#6FAFCC",
|
||||
"secondary": "#AEAEAE",
|
||||
"success": "#4FB960",
|
||||
"info": "#6FAFCC", # 降低饱和度,只做少量点缀
|
||||
"info": "#6FAFCC",
|
||||
"warning": "#F2A93B",
|
||||
"danger": "#E0524A",
|
||||
"light": "#BFC6CE", # 高亮文本
|
||||
@@ -51,14 +75,27 @@ _CALMAN_DARK_COLORS = {
|
||||
def register_themes() -> None:
|
||||
"""把自定义深色主题注册到 ttkbootstrap(可重复调用,幂等)。"""
|
||||
style = Style()
|
||||
if LIGHT_THEME not in style.theme_names():
|
||||
light_def = ThemeDefinition(
|
||||
name=LIGHT_THEME,
|
||||
themetype="light",
|
||||
colors=_CALMAN_LIGHT_COLORS,
|
||||
)
|
||||
style.register_theme(light_def)
|
||||
if DARK_THEME in style.theme_names():
|
||||
return
|
||||
theme_def = ThemeDefinition(
|
||||
dark_def = ThemeDefinition(
|
||||
name=DARK_THEME,
|
||||
themetype="dark",
|
||||
colors=_CALMAN_DARK_COLORS,
|
||||
)
|
||||
style.register_theme(theme_def)
|
||||
style.register_theme(dark_def)
|
||||
|
||||
|
||||
def _normalize_theme_name(name: Optional[str]) -> str:
|
||||
if not name or name in _LEGACY_LIGHT_THEMES:
|
||||
return LIGHT_THEME
|
||||
return name
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
@@ -101,7 +138,7 @@ def apply_initial_theme() -> str:
|
||||
返回最终生效的主题名。
|
||||
"""
|
||||
register_themes()
|
||||
name = get_saved_theme() or LIGHT_THEME
|
||||
name = _normalize_theme_name(get_saved_theme())
|
||||
style = Style()
|
||||
if name not in style.theme_names():
|
||||
name = LIGHT_THEME
|
||||
@@ -113,6 +150,7 @@ def apply_initial_theme() -> str:
|
||||
def set_theme(name: str) -> str:
|
||||
"""切换到指定主题,持久化偏好,并刷新自定义样式。"""
|
||||
register_themes()
|
||||
name = _normalize_theme_name(name)
|
||||
style = Style()
|
||||
if name not in style.theme_names():
|
||||
name = LIGHT_THEME
|
||||
|
||||
Reference in New Issue
Block a user