gui.controllers.param_controller 源代码

"""
参数映射控制器
连接 GUI 和参数映射更新逻辑
"""
from pathlib import Path
from PySide6.QtCore import QObject, Signal, QThread
from core.config_manager import AppConfig
from core.logger import get_logger

logger = get_logger()


[文档] class ParamUpdateWorker(QThread): """参数更新工作线程""" progress = Signal(str) # 进度信息 finished = Signal(bool, str) # 完成信号 (成功, 消息) def __init__(self, config: AppConfig): super().__init__() self.config = config
[文档] def run(self): """执行参数映射更新""" try: from update_param import ParamUpdater self.progress.emit("开始更新参数映射...") updater = ParamUpdater(self.config) success = updater.update_mappings() if success: self.finished.emit(True, "参数映射更新成功") else: self.finished.emit(False, "参数映射更新失败") except Exception as e: logger.error(f"参数映射更新失败: {e}", exc_info=True) self.finished.emit(False, f"更新失败: {str(e)}")
[文档] class ParamController(QObject): """参数映射控制器""" # 定义信号 worker_progress = Signal(str) worker_finished = Signal(bool, str) def __init__(self, main_window, config: AppConfig): super().__init__() self.main_window = main_window self.config = config self.worker = None
[文档] def update_param_mappings(self, config=None): """更新参数映射""" if self.worker and self.worker.isRunning(): logger.warning("参数映射更新正在进行中") return # 添加日志处理器 logger.addHandler(self.main_window.param_log_handler) self.worker = ParamUpdateWorker(config or self.config) self.worker.progress.connect(self._on_progress) self.worker.finished.connect(self._on_finished) self.worker.start()
def _on_progress(self, message: str): """处理进度更新""" logger.info(message) self.worker_progress.emit(message) def _on_finished(self, success: bool, message: str): """处理完成事件""" if success: logger.info(message) else: logger.error(message) self.worker_finished.emit(success, message) # 移除日志处理器 logger.removeHandler(self.main_window.param_log_handler)