EG/QT_TO_IMGUI_MIGRATION_CHECKLIST.md
2026-03-17 16:18:10 +08:00

3.1 KiB
Raw Blame History

Qt -> ImGui 迁移清单Qt 清理后状态)

更新时间2026-02-28
适用范围:d:\IMGUI\EG 本地工作区

目标

  • 编辑器主路径稳定运行在 ImGui + Panda3D。
  • 项目主代码不再依赖 PyQt/PySide 运行。
  • 后续把历史命名与耦合(interface_manager/treeWidget/gui_manager)继续收敛。

当前状态总览

  • PyQt/PySide/Qt 在项目代码主路径(排除 RenderPipelineFile)扫描结果:0
  • 依赖清单已从 Qt 运行依赖切到 ImGui 运行依赖。
  • ui/widgets.py 已改为 legacy 占位模块,避免误用 Qt 路径。

已完成Done

  • core/InfoPanelManager.py:去除 Qt 直接导入。
  • core/selection.py:光标逻辑改为 Panda3D 路径。
  • scene/scene_manager_convert_tiles_mixin.py:去掉 QProgressDialog,改为非 Qt 进度反馈。
  • ui/widgets.py:替换为 ImGui 迁移提示占位模块。
  • ui/icon_manager.py:替换为无 Qt 的兼容层实现。
  • core/world.py / core/vr_manager.py / core/vr/testing/test_mode.py:去除 qtWidget 语义依赖。
  • requirements/*:清理 Qt/PySide 依赖项并同步部署文档。
  • main.py:补齐兼容字段初始化(gui_elements/gui_manager/interface_manager/guiEditMode/currentGUITool)。
  • scene/scene_manager_io_mixin.py:修复 _find_scrip_in_directory 拼写错误。
  • main.py:入口改为 if __name__ == "__main__":,消除导入即运行副作用。
  • core/event_handler.py:新增场景树访问 helper替换 interface_manager.treeWidget 直连。
  • core/selection.py:统一树控件清空逻辑(_get_tree_widget/_clear_tree_selection)。
  • ui/panels/runtime_actions.py:统一 gui_manager 访问与 gui_elements 追加入口。
  • core/InfoPanelManager.py:统一场景树控件访问 helper。
  • ui/panels/editor_panels.py:按布局拆分为 4 个 mixintop/left/right/center),保留门面类组合。

待完成Next

N1 场景树接口收敛(高优先级)

  • 目标:移除 treeWidget 语义,统一走 ImGui 场景树接口。
  • 影响路径:core/event_handler.pyscene/scene_manager_*_mixin.pycore/terrain_manager.py 等。

N2 GUI 管理上下文收敛(高优先级)

  • 目标:将 interface_manager/gui_manager/gui_elements 统一到单一上下文对象。
  • 影响路径:project/project_manager.pyscene/scene_manager_io_mixin.pyui/panels/*

N3 入口规范化与回归脚本(中优先级)

  • 目标:减少脚本式副作用,建立最小回归检查。
  • 建议覆盖:启动、导入模型、选择变换、保存加载、脚本挂载。

验收标准

  • 不安装 PyQt/PySide 时,python Start_Run.py 能进入编辑器主界面。
  • 场景导入/保存/加载流程不触发 Qt 相关异常。
  • 关键交互(选择、变换、场景树)行为与清理前一致。

关联文档