From e079a6590933af669867dac2c9a538f25e5578e1 Mon Sep 17 00:00:00 2001 From: chengma Date: Thu, 23 Jul 2026 14:40:53 +0800 Subject: [PATCH] docs(tasks): add main header deduplication --- docs/tasks/T-697.md | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 docs/tasks/T-697.md diff --git a/docs/tasks/T-697.md b/docs/tasks/T-697.md new file mode 100644 index 0000000..301b78e --- /dev/null +++ b/docs/tasks/T-697.md @@ -0,0 +1,48 @@ +--- +id: T-697 +title: 移除主窗口应用内重复标题 +phase: 7 +deps: [T-696] +status: TODO +created: 2026-07-23 +--- + +## 问题 / 背景 + +主窗口当前同时使用 `setWindowTitle(display_name())` 设置 Windows 原生标题栏,并在六个 Tabs 上方通过 `QLabel(display_name())` 再显示一次相同应用名称。两个标题上下相邻,信息语义完全重复,占用桌面工作台的垂直空间,也削弱右侧会员状态的层级。 + +Windows 原生标题必须保留,用于窗口识别、任务栏/Alt+Tab 展示和系统窗口操作。应用内顶部区域还需要承载 T-696 的会员账号、套餐和有效期,因此不能整体删除,只应改为轻量会员状态栏。 + +## 方案 + +- 保留 `MainWindow.setWindowTitle(display_name())` 和现有窗口图标,不修改 Windows 原生标题栏或窗口拖动行为。 +- 删除应用内 `_header_title_label`、`appHeaderTitle` 对象和对应字体样式,不用其他品牌文字、图标或占位标签替代。 +- 保留 `appHeader` 容器与右侧 `subscriptionStatusLabel`;会员有效、观察中、异常和验证中状态逻辑不变。 +- 状态栏继续右对齐,并适当收紧上下边距;不设置固定高度,让中文长套餐、系统字体放大和高 DPI 下仍可自然撑开。 +- 这是单个标签和间距的局部调整,不改变导航模型、业务流程或交互状态,因此不新增 HTML/SVG 原型。 +- 更新 `docs/routes.md`,明确顶部区域只承载会员状态,应用名称以 Windows 原生标题栏为准。 + +## 验收要点 + +- Windows 原生标题仍显示当前 `display_name()`,任务栏和窗口标题行为不变。 +- Tabs 上方不再出现第二个“蝦皮圈優化助手”应用名称。 +- 顶部会员账号、套餐、有效期和观察状态仍正常显示并保持右对齐。 +- 顶部区域高度较原布局收紧,但在 Qt 字体/DPI 自适应时不会裁切文字。 +- 订阅观察模式、设置保存后重查、六个 Tab 和状态栏功能不受影响。 +- 自动验证: + - 主窗口标题与顶部会员状态定向 GUI 测试 + - `py -3.10 -m unittest discover -s tests` + - `py -3.10 -m ruff check app tests main.py` + - `py -3.10 -m compileall app main.py` + - `git diff --check` + +## 边界(不改什么) + +- 不自定义、隐藏或替换 Windows 原生标题栏。 +- 不移动会员状态到系统标题栏、TabBar 或底部状态栏。 +- 不修改 T-696 订阅查询、观察/强制开关、接口或门禁逻辑。 +- 不修改六个业务 Tab、主题色、按钮、表格、CDP 或蝦皮业务流程。 + +## 执行记录 + +- 待实现。