3.1 KiB
3.1 KiB
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 个 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 Start_Run.py能进入编辑器主界面。 - 场景导入/保存/加载流程不触发 Qt 相关异常。
- 关键交互(选择、变换、场景树)行为与清理前一致。
关联文档
- 模块分析: IMGUI_MODULE_ANALYSIS.md
- 全量目录与脚本清单: PROJECT_FULL_CATALOG.md