certflow.controllers.settings_controller module¶
设置控制器
负责设置页面的业务逻辑调度,连接 UI 信号与服务端/处理器: - 主题切换 → ThemeManager - 语言切换 → I18nManager - 自动保存定时器 → QTimer 调度 CertLogService.auto_save - 覆盖确认 → 透传给导入流程 - 打印机偏移 → 透传给 CertificatePrintService - 最近文件数 → 透传给 settings._add_recent_file 裁剪
- Signals:
theme_changed(str): 主题变更时发出 (light/dark) language_changed(str): 语言变更时发出 (zh_CN/en_US) auto_save_triggered(): 自动保存定时器到期时发出 settings_saved(dict): 设置保存后发出完整偏好字典
- class certflow.controllers.settings_controller.SettingsController(parent=None)[源代码]¶
基类:
QObject设置控制器 — 集中管理用户偏好的读写与运行时生效
- 架构层次:
- View (SettingsView) → Controller (SettingsController) → Handler (ThemeManager/I18nManager)
→ Service (CertLogService 自动保存)
- 参数:
parent (QObject | None)
- _auto_save_timer¶
自动保存定时器
- _auto_save_callback¶
定时器到期时的回调函数
- Type:
callable | None
- theme_changed¶
主题变更信号 (light / dark)
- language_changed¶
语言变更信号 (zh_CN / en_US)
- auto_save_triggered¶
自动保存定时器触发信号
- settings_saved¶
设置保存完成信号,携带完整偏好字典
- save_all(preferences)[源代码]¶
保存全部偏好设置并应用运行时变更
- 参数:
preferences (dict[str, Any]) -- 偏好设置字典,可包含: - auto_save: bool - auto_save_interval: int (分钟) - confirm_before_overwrite: bool - language: str - theme: str - max_recent_files: int - printer_offsets: dict {"x_offset": int, "y_offset": int}
- 返回:
None
- 返回类型:
None
示例
>>> controller = SettingsController() >>> controller.save_all({ ... "theme": "dark", ... "language": "zh_CN", ... "auto_save": True, ... "auto_save_interval": 5, ... })
- set_auto_save_callback(callback)[源代码]¶
设置自动保存定时器到期时的回调
- 参数:
callback (callable | None) -- 回调函数,签名为 () -> None,传 None 禁用
- 返回:
None
- 返回类型:
None
- staticMetaObject = PySide6.QtCore.QMetaObject("SettingsController" inherits "QObject": Methods: #4 type=Signal, signature=theme_changed(QString), parameters=QString #5 type=Signal, signature=language_changed(QString), parameters=QString #6 type=Signal, signature=auto_save_triggered() #7 type=Signal, signature=settings_saved(QVariantMap), parameters=QVariantMap )¶