Files
cmautobuy/client/src/pdd_ui_event.py
T
chengmaandClaude Opus 5 1f95de373a docs: 增加红线清单,并把约束下沉到代码文件
起因:实测发现 Codex 不会主动把 338 行的规则手册当判断依据——
问“能用 PySide6 吗”答“可以评估”,问“加个 emoji 图标”直接给改法,
问“改错别字要建工单吗”结论对但依据是通用常识、不是 §0 的实际条件。
三次都表现为“知道代码事实,但不应用项目规则”。

对策一:红线上收
- 根 AGENTS.md 开头新增 5 条红线(Qt 绑定、下单开关、风控、凭据、
  不可逆阶段),并明确“不要论证其可行性,先停下来问用户”

对策二:把约束放到 agent 必然会打开的文件里
- pdd_ui.py / pdd_ui_event.py / settings_ui.py / settings_ui_event.py
  写入模块 docstring,说明各自职责和最易踩的硬性规则
- 四个文件目前只有 docstring,无实现

同步修正
- ui_event.py 已拆成按页面分的四个文件,更新 client/AGENTS.md
  的代码分层规则和 02 §3.1 的现状差异表

未包含:ui_main.py 和 demo1/auto_v1.py 的同类 docstring,
这两个文件承载尚未提交的代码,留待代码提交时一并处理。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 12:01:38 +08:00

22 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""PDD 任务页的事件绑定。
把 `pdd_ui.py` 里控件的信号,接到查询、任务引擎等实际动作上。
改动本文件前必读 `client/AGENTS.md`。以下几条最容易踩:
- **禁止在 Qt 主线程做任何阻塞的事**:Admin 请求、uiautomator2/ADB 调用、
`time.sleep()`、轮询、大 XML 解析、批量写文件。做了界面就会卡死转圈。
- 长任务统一用 `QObject` + `moveToThread` 的 Worker 写法,
模板照抄 `docs/client/02-architecture.md` §5.1。
**不要**用 `QThread` 子类、`QRunnable` 或 Python 的 `threading`。
- 后台结果只能通过**信号**回到主线程,Worker 里一行界面代码都不许有。
- 窗口关闭时要断开信号并置标志位,否则迟到的后台结果会访问
已经销毁的控件、直接崩溃。做法见同文档 §5.2。
- 数据库读写走 Repository,**不要在这里拼业务 SQL**。
- “开始自动获取”会真的去操作手机、可能下单;“搜索”只读本地数据库。
两者必须分开,不得共用入口。
- 普通成功不弹窗,更新界面即可;可恢复错误用 `InfoBar`
(模板见 `docs/client/05-ui-specification.md` §9.1);
只有必须让用户当场做决定时才用模态对话框。
"""