设置与主题(core/settings.py)
core/settings.py 负责语言、主题、引导标记等偏好的持久化,以及翻译器的安装 / 卸载。设置以 JSON 形式写入 Qt 标准配置目录(QStandardPaths.AppConfigLocation 下的 settings.json),路径首次计算后会被缓存。
Warning
必须在 run.py 设置好 QCoreApplication 的组织名与应用名之后,本模块才能正确解析设置路径;否则不同运行阶段会解析到不同文件,导致设置无法跨重启持久化(历史 bug)。
语言
| 函数 | 说明 |
|---|---|
apply_language(lang) |
安装 / 卸载翻译器。lang 为 None / '' / zh_CN 时卸载(使用源码中文);其它值(如 en_US)加载对应 .qm 并安装。 |
load_saved_language() -> str |
读取上次选择的语言,默认 'zh_CN'。 |
save_language(lang) |
将语言选择写入持久化文件(合并历史设置,不覆盖其它项)。 |
current_language() -> str |
返回当前语言代码(如 'zh_CN' / 'en_US')。 |
主题
| 函数 | 说明 |
|---|---|
current_theme() -> str |
返回当前主题 'light' / 'dark'。 |
load_saved_theme() -> str |
读取上次选择的主题,默认 'light'(浅色)。 |
save_theme(theme) |
将主题选择写入持久化文件;theme 为空时按 'dark' 处理。 |
引导标记
| 函数 | 说明 |
|---|---|
load_initialized() -> bool |
读取"是否已看过引导"标记,默认 False。无设置文件 / 文件损坏 / 缺键时均视为未完成初始化。 |
save_initialized(val=True) |
写入引导标记(合并不覆盖其它项)。 |
版本
| 函数 / 常量 | 说明 |
|---|---|
APP_VERSION |
应用版本号(字符串),作为版本单源,启动时会写入设置文件。 |
load_saved_version() -> str \| None |
读取上次写入的版本号;无则返回 None。 |
save_version(version=APP_VERSION) |
将版本号写入持久化文件(合并不覆盖其它项),记录"最近一次运行的版本",便于检查升级 / 排查兼容性问题。仅在版本号发生变化时才写盘:正常启动(版本未变)直接返回,避免每次启动都重写设置文件而拖慢启动速度。 |
其它
| 函数 | 说明 |
|---|---|
clear_settings_file() |
删除持久化的 settings.json(若存在)。内存中的当前语言 / 主题不受影响,由调用方决定是否恢复默认。 |
Example
python
from core.settings import apply_language, load_saved_language, current_theme
apply_language(load_saved_language()) # 启动时恢复语言
if current_theme() == "dark":
...
Note
模块加载时会自动按已保存设置同步 current_theme(),使其反映持久化值。具体可设置的界面项(语言、主题、存档范围)见《配置选项》。