61 lines
2.5 KiB
Markdown
61 lines
2.5 KiB
Markdown
# 3 拆分 PDD 与设置页面 UI 模块
|
|
|
|
- 类型:重构
|
|
- 父级大工单:#1
|
|
- 所属 MVP / 版本:#2 / MVP
|
|
- 状态:已完成
|
|
- 日期:2026-08-06
|
|
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/3
|
|
|
|
## 背景与目标
|
|
|
|
原来的 `client/src/ui_main.py` 同时包含页面布局和主窗口装配,不方便初级程序员继续维护。本任务把 PDD、设备和设置页面移动到已有的页面模块,让 `ui_main.py` 只负责应用启动、导航和页面装配。
|
|
|
|
## 最终方案
|
|
|
|
- `PDDTaskPage` 移动到 `client/src/pdd_ui.py`。
|
|
- `DevicePage` 和 `SettingsPage` 移动到 `client/src/settings_ui.py`。
|
|
- `client/src/ui_main.py` 使用包内相对导入装配三个页面。
|
|
- 保留全部控件公开属性、页面 `objectName`、导航顺序、窗口标题和现有界面行为。
|
|
- 没有增加业务逻辑、依赖、数据库或接口改动。
|
|
|
|
最终实现与建单方案一致。
|
|
|
|
## 改了哪些
|
|
|
|
- `client/src/pdd_ui.py`:补充 `PDDTaskPage` 页面实现和所需导入。
|
|
- `client/src/settings_ui.py`:补充 `DevicePage`、`SettingsPage` 页面实现和所需导入。
|
|
- `client/src/ui_main.py`:删除具体页面布局,只保留启动、主窗口和导航装配。
|
|
|
|
## 验收结果
|
|
|
|
| 验收标准 | 结果 |
|
|
|---|---|
|
|
| `PDDTaskPage` 只定义在 `pdd_ui.py` | 通过 |
|
|
| `SettingsPage` 和 `DevicePage` 只定义在 `settings_ui.py` | 通过 |
|
|
| `ui_main.py` 不再包含具体页面布局 | 通过 |
|
|
| 页面 `objectName`、控件公开属性和导航装配保持不变 | 通过 |
|
|
| 三个文件通过 Python 语法检查 | 通过 |
|
|
| 离屏创建 `MainWindow` 并打印 `OK` | 通过 |
|
|
|
|
## 测试
|
|
|
|
- 执行的命令:
|
|
|
|
```powershell
|
|
C:/Python310/python.exe -m py_compile src/ui_main.py src/pdd_ui.py src/settings_ui.py
|
|
```
|
|
|
|
```powershell
|
|
$env:QT_QPA_PLATFORM="offscreen"
|
|
C:/Python310/python.exe -c "from src.ui_main import MainWindow; from PyQt5.QtWidgets import QApplication; app=QApplication([]); w=MainWindow(); assert w.pddTaskPage.objectName() == 'pddTaskPage'; assert w.devicePage.objectName() == 'devicePage'; assert w.settingsPage.objectName() == 'settingsPage'; print('OK'); w.close(); app.quit()"
|
|
Remove-Item Env:QT_QPA_PLATFORM
|
|
```
|
|
|
|
- 结果:语法检查通过;离屏测试打印 `OK`。测试环境另外输出 PyQt5 字体目录缺失警告,不影响窗口创建结果。
|
|
- **没验证到的部分**:未进行人工界面对比、真机操作、Windows 多缩放和主题切换测试;本任务没有执行设备连接或自动化。
|
|
|
|
## 相关提交
|
|
|
|
- `5916de4` 拆分页面 UI 模块
|