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

设置保存完成信号,携带完整偏好字典

get_preference(key, default=None)[源代码]

读取用户偏好(代理 settings.get_user_preference)

参数:
  • key (str) -- 偏好键名

  • default (Any) -- 键不存在时返回的默认值,默认为 None

返回:

偏好值;键不存在时返回 default

返回类型:

Any

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 )