3.3 KiB
3.3 KiB
id, title, phase, deps, status, created
| id | title | phase | deps | status | created | |
|---|---|---|---|---|---|---|
| T-697 | 移除主窗口应用内重复标题 | 7 |
|
DONE | 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 testspy -3.10 -m ruff check app tests main.pypy -3.10 -m compileall app main.pygit diff --check
边界(不改什么)
- 不自定义、隐藏或替换 Windows 原生标题栏。
- 不移动会员状态到系统标题栏、TabBar 或底部状态栏。
- 不修改 T-696 订阅查询、观察/强制开关、接口或门禁逻辑。
- 不修改六个业务 Tab、主题色、按钮、表格、CDP 或蝦皮业务流程。
执行记录
- 2026-07-23:保留
MainWindow.setWindowTitle(display_name())与窗口图标,移除应用内_header_title_label、appHeaderTitle和对应字体样式,Tabs 上方不再重复显示应用名称。 appHeader改为只承载右对齐会员状态的轻量区域,增加“会员状态栏”无障碍名称;上下边距从8/4收紧为4/2,不设置固定高度,保留字体和 DPI 自适应。- 更新路由文档和 GUI 回归测试,覆盖系统窗口标题、重复标题不存在、会员状态标签保留、状态栏对象语义与边距。
- 验证通过:主窗口定向 GUI 测试 3 项、
py -3.10 -m unittest discover -s tests(682 项)、py -3.10 -m ruff check app tests main.py、py -3.10 -m compileall app main.py、git diff --check。