# 87 任务错误提示调整为窗口顶部居中 - 类型:需求 - 父级大工单:#1 - 所属 MVP / 版本:#2 Client 可运行任务闭环(MVP) - 状态:已完成,用户验收通过 - 日期:2026-08-10 - Gitea 工单: ## 背景与目标 采集、采购、重新采集和设备不可用错误原来显示在窗口右上角。即使提示和按钮已经放大,用户仍需要把注意力和鼠标移到窗口边缘。 本任务把这些错误提示调整到软件窗口顶部水平居中,使提示更容易发现和操作,同时避免放在窗口正中央遮挡任务表格。 ## 最终方案 - 使用 PyQt-Fluent-Widgets 自带的 `InfoBarPosition.TOP`,让提示相对所属页面顶部水平居中。 - 不手工计算坐标,窗口缩放、贴靠和 DPI 变化时继续由 Fluent 组件负责定位。 - 改变采集/采购错误、重新采集前置校验警告、重新采集后台错误和设备不可用错误的位置;其他普通警告和任务详情提示保持原位置。 - 保留 520×112 最小提示尺寸、120×40 操作按钮、5 秒自动关闭、同类提示替换和底部完整状态文字。 首次实现只移动了重新采集后台错误,遗漏了用户同样视为失败提示的前置校验警告。用户验收发现后,继续在 #87 中把 `_show_rerun_warning()` 调整为顶部居中,并补充独立测试。 ## 改了哪些 - `client/src/pdd_ui_event.py`:三类任务错误提示改为顶部居中。 - `client/test/test_pdd_ui_event.py`:验证三类提示使用 `InfoBarPosition.TOP`。 - `docs/client/05-ui-specification.md`:记录窗口顶部居中的交互规则。 ## 验收结果 | 验收标准 | 结果 | |---|---| | 采集/采购错误提示位于窗口顶部水平居中 | 通过(自动化配置) | | 重新采集错误提示位于窗口顶部水平居中 | 通过(自动化配置) | | 重新采集前置校验警告位于窗口顶部水平居中 | 通过(自动化配置) | | Android 设备不可用提示位于窗口顶部水平居中 | 通过(自动化配置) | | 不使用窗口正中央的模态提示 | 通过 | | 大尺寸、明显按钮和 5 秒自动关闭保持不变 | 通过 | | 同类提示替换及底部完整状态保持不变 | 通过 | | Client 专项测试和全量回归通过 | 通过 | ## 测试 - 执行的命令:`cd client; C:/Python310/python.exe -m py_compile src/pdd_ui_event.py test/test_pdd_ui_event.py` - 执行的命令:`cd client; C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_ui_event.py" -v` - 执行的命令:`cd client; C:/Python310/python.exe -m unittest discover -s test -v` - 结果:语法检查通过;PDD 页面事件测试 32 项通过;Client 全量 224 项测试通过。 - **没验证到的部分**:未在真实可见窗口中人工检查不同窗口宽度和 100%–200% 显示缩放下的视觉位置;未执行真实采购、下单或付款。 ## 相关提交 - `bf816bc` 任务错误提示改为顶部居中 - `977af34` 统一重新执行前置校验警告和后台错误的位置