清单(2023-11-23):Clion:2023.2.2vcpkg:latestcmake:3.26.4 (clion内集成)vtk:9.2.0-pv5.11.0#10VS:VS 2022 CommunityOS:win11 Pro
前置安装:Clion 本地安装Qt6.6 本地安装VS 2022 Community 本地安装vcpkg 本地安装,参考 https://www.ithere.net/article/1721450468087451650vtk 安装,vcpkg install vtk[qt]
clion创建项目 qtvtkmsvc
修改CmakeLists配置
#添加VTK配置
set(CMAKE_PREFIX_PATH "E:/qt-work/vcpkg/installed/x64-windows/share/vtk")
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
#修改target_link_libraries, 添加依赖 ${VTK_LIBRARIES}
target_link_libraries(qtvtkmsvc
Qt::Core
Qt::Gui
Qt::Widgets
${VTK_LIBRARIES})
添加Visual Studio编译器
setting --> Build,Execution,Deployment --> Toolchains,并设置成ide默认
修改Cmake配置
setting --> Build,Execution,Deployment --> Cmake,修改 Generator为Visual Studio 17 2022
编辑 main.cpp
#include <QApplication>
#include <QSurfaceFormat>
#include <QVTKOpenGLNativeWidget.h>
#include <vtkSphereSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkGenericOpenGLRenderWindow.h>
#include <vtkNamedColors.h>
#include <vtkProperty.h>
#include <vtkSmartPointer.h>
#include "vtkAutoInit.h"
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat());
QVTKOpenGLNativeWidget *widget = new QVTKOpenGLNativeWidget();
vtkSmartPointer<vtkNamedColors> colors = vtkSmartPointer<vtkNamedColors>::New();
vtkSmartPointer<vtkSphereSource> sphereSource = vtkSmartPointer<vtkSphereSource>::New();
vtkSmartPointer<vtkPolyDataMapper> sphereMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
sphereMapper->SetInputConnection(sphereSource->GetOutputPort());
vtkSmartPointer<vtkActor> sphereActor = vtkSmartPointer<vtkActor>::New();
sphereActor->SetMapper(sphereMapper);
sphereActor->GetProperty()->SetColor(colors->GetColor4d("Tomato").GetData());
vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(sphereActor);
renderer->SetBackground(colors->GetColor3d("SteelBlue").GetData());
vtkSmartPointer<vtkGenericOpenGLRenderWindow> renderWindow = vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();
renderWindow->AddRenderer(renderer);
renderWindow->SetWindowName("RenderWindowNoUIFile");
widget->setRenderWindow(renderWindow);
widget->resize(800, 600);
widget->show();
return QApplication::exec();
}
启动项目

问题记录:
- MinGW编译器不支持vtk,故改用msvc编译器
- Clion Run/Debug Configurations关键设置,指定Woking directory:
# vcpkg用来管理第三方库依赖,故设置vcpkg install bin目录
Woking directory: E:\qt-work\vcpkg\installed\x64-windows\debug\bin
未配置该项,在Debug模式下会遇到系统错误:
在Run模式下报错:Process finished with exit code -1073741515 (0xC0000135)
- CmakLists 关键设置:
set(CMAKE_PREFIX_PATH "C:/Qt/6.6.0/msvc2019_64")
未设置会报错
至此可以愉快的coding qt vtk on Clion 2023