文章
问答
冒泡
Clion 2023 快速集成 vcpkg + qt6.6 + vtk9.2
 
清单(2023-11-23):
Clion:2023.2.2
vcpkg:latest
cmake:3.26.4 (clion内集成)
vtk:9.2.0-pv5.11.0#10
VS:VS 2022 Community
OS:win11 Pro
 
 
前置安装:
Clion 本地安装
Qt6.6 本地安装
VS 2022 Community 本地安装
vtk 安装,vcpkg install vtk[qt]
 

clion创建项目 qtvtkmsvc

0
 

修改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默认
0
0
 

修改Cmake配置

setting --> Build,Execution,Deployment --> Cmake,修改 Generator为Visual Studio 17 2022
0
 

编辑 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();
}
 

启动项目

 
 

问题记录:

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

关于作者

Miraclewcg
上善若水
获得点赞
文章被阅读