From 9337340848eb13da88c637ce8ecc397f41827238 Mon Sep 17 00:00:00 2001 From: gaozheng Date: Sun, 7 Jun 2026 19:35:46 +0800 Subject: [PATCH] =?UTF-8?q?spike(S2):=20ADS+QVTKOpenGLStereoWidget=20?= =?UTF-8?q?=E6=B5=AE=E5=8A=A8/=E9=87=8D=E5=81=9C=E9=9D=A0=E4=B8=8D?= =?UTF-8?q?=E9=BB=91=E5=B1=8F(=E7=94=A8=E6=88=B7=E5=AE=9E=E6=B5=8B)=20?= =?UTF-8?q?=E2=80=94=20=E4=B8=89=20spike=20=E5=85=A8=E7=BB=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - main.cpp: ADS CDockManager 承载 VTK 面板 + 占位面板 - CMakeLists: FetchContent 拉 ADS 对接官方 Qt; app 链 ads::qt6advanceddocking - Phase 0 spike 报告: 门槛 PASS, 记录实机环境/结论/构建约定/色阶映射待办 --- CMakeLists.txt | 14 ++++-- .../ScreenShot_2026-06-07_182903_240.png | Bin 0 -> 68054 bytes .../2026-06-07-m1-phase0-spike-report.md | 46 ++++++++++++++++++ src/app/CMakeLists.txt | 1 + src/app/main.cpp | 44 +++++++++++------ 5 files changed, 84 insertions(+), 21 deletions(-) create mode 100644 ScreenShot/ScreenShot_2026-06-07_182903_240.png create mode 100644 docs/superpowers/plans/2026-06-07-m1-phase0-spike-report.md diff --git a/CMakeLists.txt b/CMakeLists.txt index 44dcc4c..291067b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,11 +42,15 @@ find_package(VTK REQUIRED COMPONENTS # find_package(nlohmann_json CONFIG REQUIRED) # find_package(OpenSSL REQUIRED) -# ADS / QtKeychain:FetchContent 对接官方 Qt(spike#2 接入;体量小,源码编可接受) -# include(FetchContent) -# FetchContent_Declare(ads GIT_REPOSITORY https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git GIT_TAG 4.3.1) -# FetchContent_Declare(qtkeychain GIT_REPOSITORY https://github.com/frankosterfeld/qtkeychain.git GIT_TAG 0.14.3) -# FetchContent_MakeAvailable(ads qtkeychain) +# ADS(停靠):FetchContent 对接官方 Qt(spike S2)。QtKeychain 待登录层再加。 +include(FetchContent) +set(ADS_VERSION 4.3.1 CACHE STRING "" FORCE) +set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) +set(BUILD_STATIC OFF CACHE BOOL "" FORCE) +FetchContent_Declare(ads + GIT_REPOSITORY https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git + GIT_TAG 4.3.1) +FetchContent_MakeAvailable(ads) add_subdirectory(src) diff --git a/ScreenShot/ScreenShot_2026-06-07_182903_240.png b/ScreenShot/ScreenShot_2026-06-07_182903_240.png new file mode 100644 index 0000000000000000000000000000000000000000..19088d6a967bc7329f92c5824e52817c53bd8cd2 GIT binary patch literal 68054 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" +# 配置: ...dev.bat cmake --preset msvc-release +# 构建: ...dev.bat cmake --build build/release --target +# 测试: ...dev.bat ctest --test-dir build/release --output-on-failure +``` +当前统一用 **Release**(`build/release`):Debug 全量配置会因无 Debug VTK 而失败;core 纯逻辑测试 Release 即可。 + +## 下一步 + +进入 **Phase 1 — core 纯逻辑层**(`2026-06-07-m1-phase1-core.md`),subagent(opus 4.8)逐任务 TDD 实现:LocalFrame / 领域模型 / 阶梯色阶 / IDW / CrsTransform,以 `tools/validate_samples.py`、`validate_voxel.py` 结论为地面真值。 diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index c65faca..d9a3410 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -7,6 +7,7 @@ add_executable(geopro_desktop WIN32 main.cpp) target_link_libraries(geopro_desktop PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets ${VTK_LIBRARIES} + ads::qt6advanceddocking ) # VTK 9 模块需 autoinit,否则渲染后端/工厂未注册,运行期黑屏或报错 diff --git a/src/app/main.cpp b/src/app/main.cpp index b900b6f..d4e7f54 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -1,15 +1,17 @@ -// M1 spike 冒烟程序(设计 §15 spike#1/#2 起点)。 +// M1 spike 冒烟程序(设计 §15 spike#1/#2)。 // // 验证目标: -// 1) 全 vcpkg 下 Qt6 + VTK[qt] 共用同一份 Qt,可编译/链接/运行(无双 Qt 冲突)。 -// 2) QVTKOpenGLStereoWidget(QOpenGLWidget 系,ADS reparent 友好)能在 Qt 窗口里渲染。 -// -// 跑通后:在此基础上接入 ADS 停靠(spike#2)、再展开 render/view 分层(实现计划)。 +// 1) 全 vcpkg 下 Qt6 + VTK[qt] 共用同一份 Qt,可编译/链接/运行(无双 Qt 冲突)。[S1 ✅] +// 2) QVTKOpenGLStereoWidget 在 ADS 停靠面板里渲染,浮动/重停靠不黑屏。[S2] #include +#include #include #include +#include +#include + #include #include #include @@ -20,36 +22,46 @@ int main(int argc, char* argv[]) { - // VTK 要求在创建任何 QVTKOpenGL* 前设置默认 surface format QSurfaceFormat::setDefaultFormat(QVTKOpenGLStereoWidget::defaultFormat()); - QApplication app(argc, argv); QMainWindow window; - window.setWindowTitle(QStringLiteral("Geopro 3.0 — spike smoke test (Qt + VTK)")); - window.resize(1024, 720); - - auto* vtkWidget = new QVTKOpenGLStereoWidget(&window); - window.setCentralWidget(vtkWidget); + window.setWindowTitle(QStringLiteral("Geopro 3.0 — spike (Qt + VTK + ADS)")); + window.resize(1280, 800); + // ---- VTK 渲染(锥体)---- + auto* vtkWidget = new QVTKOpenGLStereoWidget(); vtkNew renderWindow; vtkWidget->setRenderWindow(renderWindow); vtkNew cone; cone->SetResolution(32); - vtkNew mapper; mapper->SetInputConnection(cone->GetOutputPort()); - vtkNew actor; actor->SetMapper(mapper); - vtkNew renderer; renderer->AddActor(actor); - renderer->SetBackground(0.12, 0.13, 0.16); // 科学软件深色背景 + renderer->SetBackground(0.12, 0.13, 0.16); renderer->ResetCamera(); renderWindow->AddRenderer(renderer); + // ---- ADS 停靠:VTK 面板 + 占位面板(用于测试浮动/重停靠)---- + auto* dockManager = new ads::CDockManager(&window); + window.setCentralWidget(dockManager); + + auto* vtkDock = new ads::CDockWidget(QStringLiteral("三维视图")); + vtkDock->setWidget(vtkWidget); + dockManager->addDockWidget(ads::CenterDockWidgetArea, vtkDock); + + auto* leftDock = new ads::CDockWidget(QStringLiteral("对象列表")); + leftDock->setWidget(new QLabel(QStringLiteral("(占位面板)"))); + dockManager->addDockWidget(ads::LeftDockWidgetArea, leftDock); + + auto* rightDock = new ads::CDockWidget(QStringLiteral("属性")); + rightDock->setWidget(new QLabel(QStringLiteral("(占位面板)"))); + dockManager->addDockWidget(ads::RightDockWidgetArea, rightDock); + window.show(); return app.exec(); }