Files
cmautobuy/docs/task/3-拆分页面-ui-模块.md
T
2026-08-06 12:06:49 +08:00

2.5 KiB

3 拆分 PDD 与设置页面 UI 模块

  • 类型:重构
  • 父级大工单:#1
  • 所属 MVP / 版本:#2 / MVP
  • 状态:已完成
  • 日期:2026-08-06
  • Gitea 工单:#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 通过

测试

  • 执行的命令:

    C:/Python310/python.exe -m py_compile src/ui_main.py src/pdd_ui.py src/settings_ui.py
    
    $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 模块