""" 全局日志管理器 """ from PyQt5.QtCore import QObject, pyqtSignal # --- 1. 定义信号发射器 --- class SignalEmitter(QObject): log_signal = pyqtSignal(str, str) # --- 2. 定义 Logger 类 (这是之前缺失的核心) --- class Logger: def __init__(self): # 创建信号发射器实例 self.emitter = SignalEmitter() # 连接信号到槽函数 self.emitter.log_signal.connect(self._on_log_received) # 存储回调函数(即日志面板的接收方法) self.log_callbacks = [] def _on_log_received(self, message, level): """实际处理日志的地方""" for callback in self.log_callbacks: callback(message, level) def add_listener(self, func): """注册日志监听者""" self.log_callbacks.append(func) def log(self, msg, level="INFO"): """供其他模块调用的方法""" self.emitter.log_signal.emit(msg, level) # 便捷方法 def info(self, msg): self.log(msg, "INFO") def debug(self, msg): self.log(msg, "DEBUG") def warning(self, msg): self.log(msg, "WARNING") def error(self, msg): self.log(msg, "ERROR") # --- 3. 创建全局实例 --- # 这行代码必须在类定义之后 logger = Logger()