Ubuntu Qt VTK 开发环境配置

Ubuntu Qt VTK 开发环境配置

1 安装依赖库

sudo apt update
sudo apt install -y build-essential cmake 
sudo apt install -y qtbase5-dev qtchooser qt5-qmake qtcreator
sudo apt install -y libvtk9-dev libvtk9-qt-dev  # VTK 9 的 Qt 支持

 2 创建 Qt 项目并配置 VTK

CMake 项目(推荐)

cmake_minimum_required(VERSION 3.16)

project(vtkShow LANGUAGES C CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt5 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core)
find_package(VTK REQUIRED)
set(VTK_USE_QT ON)
set(VTK_NO_MPI ON)

add_executable(vtkShow
  main.cpp
)
target_link_libraries(vtkShow Qt${QT_VERSION_MAJOR}::Core ${VTK_LIBRARIES})

include(GNUInstallDirs)
install(TARGETS vtkShow
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

  main.cpp

#include <vtkSmartPointer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkCylinderSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkProperty.h>
#include <vtkAutoInit.h>

VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle)

int main()
{
    vtkSmartPointer<vtkCylinderSource> cylinder =nullptr;
    cylinder = vtkSmartPointer<vtkCylinderSource>::New();
    cylinder->SetHeight(3.0);
    cylinder->SetRadius(1.0);
    cylinder->SetResolution(200);

    vtkSmartPointer<vtkPolyDataMapper> cylinderMapper=nullptr;
    cylinderMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
    cylinderMapper->SetInputConnection(cylinder->GetOutputPort());

    vtkSmartPointer<vtkActor> cylinderActor = nullptr;
    cylinderActor= vtkSmartPointer<vtkActor>::New();

    cylinderActor->SetMapper(cylinderMapper);
    cylinderActor->GetProperty()->SetColor(0.0,0.0,1.0);

    vtkSmartPointer<vtkRenderer> renderer = nullptr;
    renderer = vtkSmartPointer<vtkRenderer>::New();

    renderer->AddActor(cylinderActor);
    renderer->SetBackground(1.0,1.0,1.0);

    vtkSmartPointer<vtkRenderWindow> window = nullptr;
    window =vtkSmartPointer<vtkRenderWindow>::New();
    window->AddRenderer(renderer);
    window->SetSize(600,480);
    window->Render();
    window->SetWindowName("Cylinder");

    vtkSmartPointer<vtkRenderWindowInteractor> interactor = nullptr;
    interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();

    interactor->SetRenderWindow(window);

    vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = nullptr;
    style=vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();

    interactor->SetInteractorStyle(style);
    interactor->Initialize();
    interactor->Start();

    return EXIT_SUCCESS;
}

  编译运行

mkdir build && cd build
cmake .. && make
./vtkShow

  

posted @ 2025-06-04 09:12  钟齐峰  阅读(190)  评论(0)    收藏  举报