# Geopro 3.0 桌面客户端 地球物理勘探数据可视化桌面客户端(Qt 6 + VTK 9,C++)。复刻 Geopro 3.0 核心「项目分析视图」。 > M1 范围、架构与决策见 **[docs/superpowers/specs/2026-06-07-geopro-desktop-m1-design.md](docs/superpowers/specs/2026-06-07-geopro-desktop-m1-design.md)**。 > 上位技术基线见 **[docs/Geopro3.0_技术选型与架构规约.md](docs/Geopro3.0_技术选型与架构规约.md)**。 > 环境搭建见 **[docs/ENV_SETUP_Windows.md](docs/ENV_SETUP_Windows.md)**。 ## 技术栈 Qt 6.11(QtWidgets)+ VTK 9.6 · CMake + Ninja · 官方 MSVC 预编译 Qt + vcpkg(仅非 Qt 依赖)· MSVC(VS 2022/2026)/ C++17 · ADS 停靠 · GDAL/PROJ · OpenSSL · QtKeychain。 ## 目录(设计 §3) ``` src/core/ 纯业务,零 Qt/VTK src/data/ Repository + 解析器 src/net/ ApiClient / AuthService / Credential src/render/ VTK 场景与 actor(单一场景 + 相机预设) src/view/ QtWidgets 面板 src/controller/ 联动编排 src/app/ 入口 + 主窗(M1 spike:Qt+VTK 冒烟程序) tests/ gtest / Qt Test tools/ 离线验证脚本(validate_samples.py) docs/ 规约、API、样本数据、设计文档 ``` ## 构建与运行 前置:**Visual Studio 2022/2026**(勾选「使用 C++ 的桌面开发」工作负载,自带 CMake + Ninja)、Git、**vcpkg** 并设环境变量 `VCPKG_ROOT`。构建方案②:单一官方 MSVC 预编译 Qt(`CMAKE_PREFIX_PATH` → `D:/Qt/6.11.1/msvc2022_64`)、VTK 预编译于 `external/vtk-install`、ADS/QtKeychain 经 FetchContent 对接同一份 Qt、仅非 Qt 依赖(GDAL/PROJ/OpenSSL/…)走 vcpkg。详见 [docs/ENV_SETUP_Windows.md](docs/ENV_SETUP_Windows.md)。 > ⚠️ 本机 `cmake` / `ninja` / `cl` **默认不在 PATH**,必须在已激活 MSVC 环境的终端里构建。下面三种方式都已处理好这一点。 ### 方式一:一键脚本(推荐) 项目根的 `build.bat` 自动用 vswhere 定位 VS、激活 MSVC 环境、按需配置并编译。在 **cmd** 里于项目根执行 `build <命令>`: | 命令 | 作用 | |---|---| | `build`(或 `build app`) | 编译主程序 `geopro_desktop`(默认) | | `build run` | 编译并运行主程序 | | `build test` | 编译并跑单元测试(ctest) | | `build all` | 编译全部目标 | | `build configure` | 改了 CMakeLists / 新增源文件后,强制重新配置 | ### 方式二:Visual Studio 打开文件夹 VS →「打开本地文件夹」→ 选仓库根 → 自动识别 `CMakePresets.json` → 选配置 **MSVC Release** → 菜单「生成 → 全部生成」;运行/调试目标选 `geopro_desktop`。 ### 方式三:手动命令行 开始菜单打开「**x64 Native Tools Command Prompt for VS**」(已带 MSVC 环境),在仓库根(CMake 用 VS 自带的全路径,因其不在 PATH): ```bat set CMAKE="%VSINSTALLDIR%Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" %CMAKE% --preset msvc-release :: 配置(首次 / 改 CMakeLists 后) %CMAKE% --build build/release --target geopro_desktop :: 编译主程序 build\release\src\app\geopro_desktop.exe :: 运行 %CMAKE% --build build/release --target geopro_tests :: 编译测试 ctest --test-dir build/release --output-on-failure :: 跑测试 ``` (Debug 用 `--preset msvc-debug`,对应 `build/debug`。`%VSINSTALLDIR%` 在 Native Tools 提示符里已设好。) ### 构建目标与产物 - `geopro_desktop` — 主程序,产物 `build/release/src/app/geopro_desktop.exe` - `geopro_tests` — 单元测试,配 `ctest` - 不带 `--target` 编译全部 > 改了已有 `.cpp/.hpp` 直接 `--build`(Ninja 增量);改了 `CMakeLists.txt` 或新增源文件需先 `--preset` / `build configure`。链接报 **LNK1104**(文件被占用)时,先关掉运行中的 `geopro_desktop.exe`。 ## 当前状态 M1 设计完成(v2,经双专家评审)。进入 **spike 预研**(设计 §15):① 全 vcpkg 构建/部署 ② ADS + QVTKOpenGLStereoWidget 停靠稳定 ③ 真实样本跑通 banded contour。spike 通过后展开完整实现计划。