多线程处理框架
QRunnable 多线程处理框架:Worker 回调执行 + WorkerSignals 信号回主线程。
概述
quatm/GUI/widgets/helper_workers.py(及同构的 browser_workers.py)提供多线
程处理框架:Worker 继承 QRunnable,把任意回调函数放进 QThreadPool 线程池
执行,并通过 WorkerSignals 以 finished / error / result / progress 等信号把结果
送回 GUI 主线程。
browser_workers:供实验浏览器(实验队列、循环器等)使用;helper_workers:供对准/辅助等工具使用。
组件
| 组件 | 说明 |
|---|---|
Worker | QRunnable 工作线程:设置、执行与收尾(含异常处理) |
WorkerSignals | 工作线程可发出的信号:finished / error / result / progress 等 |
用法
from quatm.GUI.widgets.helper_workers import Worker
worker = Worker(fn=long_running, args=(...), kwargs={...})
worker.signals.result.connect(on_result) # 主线程槽函数
worker.signals.error.connect(on_error)
QThreadPool.globalInstance().start(worker)
更完整说明见 后台工作线程。