docs: 切换 GUI 选型为 PySide6
This commit is contained in:
+27
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user