fix: _log_queue在OCR管理器之前初始化

线程Thread-1启动时_log_queue尚未创建导致AttributeError
This commit is contained in:
youpaishidifu
2026-08-10 11:20:10 +08:00
parent df42eb361b
commit daa575931c
+5 -4
View File
@@ -396,6 +396,11 @@ class MsgBotApp(ctk.CTk):
# 自动回复 # 自动回复
self.ar = AutoReply(self.monitor) self.ar = AutoReply(self.monitor)
# 日志队列(线程安全)— 必须在OCR管理器之前创建
self._log_queue: queue.Queue[str] = queue.Queue()
# 自动回复执行队列(转发到主线程,避免 daemon 线程 SetForegroundWindow 失败)
self._reply_queue: queue.Queue[dict] = queue.Queue()
# ⭐ OCR引擎管理器(双引擎:EasyOCR + Windows OCR) # ⭐ OCR引擎管理器(双引擎:EasyOCR + Windows OCR)
self._ocr_manager = OCREngineManager(log_callback=self._log) self._ocr_manager = OCREngineManager(log_callback=self._log)
# 预初始化OCR引擎(后台线程,不阻塞UI) # 预初始化OCR引擎(后台线程,不阻塞UI)
@@ -407,10 +412,6 @@ class MsgBotApp(ctk.CTk):
self.ar.set_enabled(self.cfg.get("auto_reply_enabled", False)) self.ar.set_enabled(self.cfg.get("auto_reply_enabled", False))
self.ar.set_min_score(self.cfg.get("auto_reply_min_score", 0.35)) self.ar.set_min_score(self.cfg.get("auto_reply_min_score", 0.35))
# 日志队列(线程安全)
self._log_queue: queue.Queue[str] = queue.Queue()
# 自动回复执行队列(转发到主线程,避免 daemon 线程 SetForegroundWindow 失败)
self._reply_queue: queue.Queue[dict] = queue.Queue()
self._build_ui() self._build_ui()
# 定时从队列取日志刷新 # 定时从队列取日志刷新