docs: 切换 GUI 选型为 PySide6

This commit is contained in:
chengma
2026-06-26 16:09:09 +08:00
parent ccb4d52d9f
commit 92735ae7a4
11 changed files with 90 additions and 34 deletions
+27
View File
@@ -169,6 +169,33 @@ render_prompt(template_text, task) -> str
- 生成封面时 `gen_cover` 的 prompt = `render_prompt(当前封面模板, task)`。
- 模板与 `title_prompt.txt` 均为可手改的纯文本文件。
## gui / workers 模块(`gui.py` / `workers.py`,待建,PySide6)
```python
# GUI 入口
main() -> int # 创建 QApplication + MainWindow
class MainWindow(QMainWindow) # QTabWidget: ①②③④⑤
# worker 约定
class BaseWorker(QObject):
progress = Signal(dict) # {"done": int, "total": int, ...}
row_updated = Signal(int, dict) # task_id, changed fields
log = Signal(str)
failed = Signal(int, str) # task_id, error
finished = Signal(dict) # summary
cancelled = Signal(dict)
def cancel(self) -> None: ...
run_worker(worker: BaseWorker) -> QThread # 绑定 signals、启动、收尾 deleteLater
```
要点:
- GUI 线程只操作 Qt widget;后台 worker 不直接访问 QWidget。
- 采集、AI 生成、更新、Excel 回写都通过 worker 执行,用 signal 回传进度。
- 每个 worker/线程按需创建自己的 SQLite connection,不跨线程共享连接。
- ③ 的批量确认弹窗在 GUI 主线程完成;用户确认后才创建 `ApplyWorker`。
## CLI / 触发合约(现有脚本,过渡期保留)
```bash