Files
niumasoftware/ui/theme.py
T
2026-09-23 16:51:40 +08:00

65 lines
2.1 KiB
Python

from db.database import get_setting, set_setting
THEMES = {
"dark": {
"panel_bg": "rgba(30,30,30,120)", # Lower opacity for frosted glass effect
"panel_border": "rgba(255,255,255,30)", # Lighter border highlight
"header_bg": "rgba(255,255,255,25)", # Semitransparent headers
"header_hover": "rgba(255,255,255,45)",
"item_name_color":"#ffffff",
"search_bg": "rgba(255,255,255,20)",
"search_border": "rgba(255,255,255,30)",
"search_color": "#ffffff",
"search_focus": "#4a9eff",
"btn_color": "#cccccc",
"btn_hover": "#ffffff",
"scrollbar": "rgba(255,255,255,50)",
"menu_bg": "rgba(30,30,30,230)",
"menu_color": "#ffffff",
"menu_border": "rgba(255,255,255,30)",
"menu_selected": "rgba(255,255,255,40)",
},
"light": {
"panel_bg": "rgba(255,255,255,140)", # Lower opacity for frosted glass effect
"panel_border": "rgba(0,0,0,30)", # Subtler border
"header_bg": "rgba(0,0,0,15)", # Semitransparent headers
"header_hover": "rgba(0,0,0,25)",
"item_name_color":"#111111",
"search_bg": "rgba(0,0,0,10)",
"search_border": "rgba(0,0,0,20)",
"search_color": "#111111",
"search_focus": "#4a9eff",
"btn_color": "#555555",
"btn_hover": "#000000",
"scrollbar": "rgba(0,0,0,40)",
"menu_bg": "rgba(255,255,255,240)",
"menu_color": "#111111",
"menu_border": "rgba(0,0,0,20)",
"menu_selected": "rgba(0,0,0,15)",
},
}
_current = "dark"
def load():
"""从数据库读取上次保存的主题,应在 init_db() 之后调用"""
global _current
saved = get_setting("theme", "dark")
_current = saved if saved in THEMES else "dark"
def current() -> dict:
return THEMES[_current]
def name() -> str:
return _current
def set_theme(theme_name: str):
global _current
if theme_name in THEMES:
_current = theme_name
set_setting("theme", theme_name)