# 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) - [x] `core/InfoPanelManager.py`:去除 Qt 直接导入。 - [x] `core/selection.py`:光标逻辑改为 Panda3D 路径。 - [x] `scene/scene_manager_convert_tiles_mixin.py`:去掉 `QProgressDialog`,改为非 Qt 进度反馈。 - [x] `ui/widgets.py`:替换为 ImGui 迁移提示占位模块。 - [x] `ui/icon_manager.py`:替换为无 Qt 的兼容层实现。 - [x] `core/world.py` / `core/vr_manager.py` / `core/vr/testing/test_mode.py`:去除 `qtWidget` 语义依赖。 - [x] `requirements/*`:清理 Qt/PySide 依赖项并同步部署文档。 - [x] `main.py`:补齐兼容字段初始化(`gui_elements/gui_manager/interface_manager/guiEditMode/currentGUITool`)。 - [x] `scene/scene_manager_io_mixin.py`:修复 `_find_scrip_in_directory` 拼写错误。 - [x] `main.py`:入口改为 `if __name__ == "__main__":`,消除导入即运行副作用。 - [x] `core/event_handler.py`:新增场景树访问 helper,替换 `interface_manager.treeWidget` 直连。 - [x] `core/selection.py`:统一树控件清空逻辑(`_get_tree_widget/_clear_tree_selection`)。 - [x] `ui/panels/runtime_actions.py`:统一 `gui_manager` 访问与 `gui_elements` 追加入口。 - [x] `core/InfoPanelManager.py`:统一场景树控件访问 helper。 - [x] `ui/panels/editor_panels.py`:按布局拆分为 4 个 mixin(`top/left/right/center`),保留门面类组合。 ## 待完成(Next) ### N1 场景树接口收敛(高优先级) - 目标:移除 `treeWidget` 语义,统一走 ImGui 场景树接口。 - 影响路径:`core/event_handler.py`、`scene/scene_manager_*_mixin.py`、`core/terrain_manager.py` 等。 ### N2 GUI 管理上下文收敛(高优先级) - 目标:将 `interface_manager/gui_manager/gui_elements` 统一到单一上下文对象。 - 影响路径:`project/project_manager.py`、`scene/scene_manager_io_mixin.py`、`ui/panels/*`。 ### N3 入口规范化与回归脚本(中优先级) - 目标:减少脚本式副作用,建立最小回归检查。 - 建议覆盖:启动、导入模型、选择变换、保存加载、脚本挂载。 ## 验收标准 - 不安装 PyQt/PySide 时,`python main.py` 能进入编辑器主界面。 - 场景导入/保存/加载流程不触发 Qt 相关异常。 - 关键交互(选择、变换、场景树)行为与清理前一致。 ## 关联文档 - 模块分析: [IMGUI_MODULE_ANALYSIS.md](d:/IMGUI/EG/IMGUI_MODULE_ANALYSIS.md) - 全量目录与脚本清单: [PROJECT_FULL_CATALOG.md](d:/IMGUI/EG/PROJECT_FULL_CATALOG.md)