VTK编译及环境配置

VTK(Visualization Toolkit)是一个开源的、跨平台的三维可视化开发库,用于处理和可视化三维数据。

以下是VTK编译及环境配置的详细步骤:

一、VTK源码下载与解压

1、前往VTK官网下载页面,下载VTK9.4.0的源码压缩包,包括VTK-9.4.0.tar.gz、VTKData-9.4.0.tar.gz和VTKLargeData-9.4.0.tar.gz。

2、将这三个压缩包解压到同一目录下,并在该目录下创建build和install两个文件夹。

二、环境配置Visual Studio中Qt开发环境的搭建-CSDN博客虽然Qt Visual Studio Tools版本与Qt版本之间存在一定的匹配关系,但这种关系并不是绝对的。开发者应根据自己的项目需求、Qt版本和Visual Studio版本选择适合的Qt Visual Studio Tools版本。同时,注意插件的兼容性、系统要求和软件的更新与支持情况。QT5.15.2在线安装教程(详细图文)_qt5.15.2安装教程-CSDN博客C++实践之Qt学习(扩展):Visual Studio中Qt开发环境的搭建_visual studio 与 qt-CSDN博客。 https://blog.csdn.net/a8039974/article/details/145707283?sharetype=blogdetail&sharerId=145707283&sharerefer=PC&sharesource=a8039974&spm=1011.2480.3001.8118

  1. 安装Visual Studio 2019:确保已安装Visual Studio 2019,并配置好C++开发环境。
  2. 安装Qt5.15.2:下载并安装Qt5.15.2,确保在安装过程中选择了对应的编译器(如MSVC 2019 64-bit)。
  3. 配置Qt环境变量:将Qt的安装路径添加到系统的环境变量中,以便在编译过程中能够找到Qt的相关文件。
  4. 安装CMake:CMake是一个跨平台的自动化建构系统,它用一个名为CMakeLists.txt的文件来描述所有平台的安装(编译过程)。下载并安装CMake,确保版本与VTK9.3.1兼容。

三、使用CMake进行VTK编译配置

1、打开CMake GUI。

2、在“Where is the source code”字段中,指定VTK源码的根目录。

3、在“Where to build the binaries”字段中,指定之前创建的build文件夹。

4、点击“Configure”按钮,选择Visual Studio 2019作为生成器,并选择x64作为目标平台。

5、指定之前创建的install文件夹。 

6、在CMake配置过程中,确保启用了对Qt的支持,可以搜索一下Qt,全部改为WANT。CMake会自动检测到已安装的Qt路径(如果已正确配置环境变量)。

7、其他配置

8、配置完成后,检查是否有错误或警告信息。如果没有,点击“Generate”按钮生成Visual Studio工程文件。

四、在Visual Studio中编译VTK

  1. 打开Visual Studio 2019,并使用CMake生成的工程文件打开项目。
  2. 在解决方案资源管理器中,找到ALL_BUILD目标,并右键点击选择“生成”或“重新生成”。这将编译VTK的所有模块。
  3. 编译完成后,找到INSTALL目标,并右键点击选择“生成”或“重新生成”。这将安装VTK的SDK到之前创建的install文件夹中。

五、验证VTK编译结果

5.1、VS验证VTK

第一步:VS创建一个新项目,选择空项目,我们命名为testVTK

 第二步:设置testVTK项目属性:右击testVTK,选择属性

  • 设置包含目录

  •  设置库目录

 

  • 配置链接器输入附加依赖项

使用python代码提取库文件

import os
 
def main():
    BASEDIR = "C:\VTK\VTK-9.4.0-install\lib"
 
    fn = os.listdir(BASEDIR)
    with open("lib_r1.txt", 'w') as fp:
        for i in fn:
            fp.write("{}\n".format(i))

    print("hello")
 
 
if __name__ == "__main__":
    main()

 

  • 向系统环境变量中(Win10)的Path添加Install下的bin文件夹 

第三步:测试源码

// CylinderExample.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
using namespace std;

#include <vtkActor.h>
#include <vtkCamera.h>
#include <vtkCylinderSource.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>

#include <array>

#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);// VTK was built with vtkRenderingOpenGL2
VTK_MODULE_INIT(vtkInteractionStyle);


int main(int, char* [])
{
	vtkNew<vtkNamedColors> colors;

	// Set the background color.
	std::array<unsigned char, 4> bkg{ {26, 51, 102, 255} };
	colors->SetColor("BkgColor", bkg.data());

	// This creates a polygonal cylinder model with eight circumferential facets
	// (i.e, in practice an octagonal prism).
	vtkNew<vtkCylinderSource> cylinder;
	cylinder->SetResolution(8);

	// The mapper is responsible for pushing the geometry into the graphics
	// library. It may also do color mapping, if scalars or other attributes are
	// defined.
	vtkNew<vtkPolyDataMapper> cylinderMapper;
	cylinderMapper->SetInputConnection(cylinder->GetOutputPort());

	// The actor is a grouping mechanism: besides the geometry (mapper), it
	// also has a property, transformation matrix, and/or texture map.
	// Here we set its color and rotate it around the X and Y axes.
	vtkNew<vtkActor> cylinderActor;
	cylinderActor->SetMapper(cylinderMapper);
	cylinderActor->GetProperty()->SetColor(
		colors->GetColor4d("Tomato").GetData());
	cylinderActor->RotateX(30.0);
	cylinderActor->RotateY(-45.0);

	// The renderer generates the image
	// which is then displayed on the render window.
	// It can be thought of as a scene to which the actor is added
	vtkNew<vtkRenderer> renderer;
	renderer->AddActor(cylinderActor);
	renderer->SetBackground(colors->GetColor3d("BkgColor").GetData());
	// Zoom in a little by accessing the camera and invoking its "Zoom" method.
	renderer->ResetCamera();
	renderer->GetActiveCamera()->Zoom(1.5);

	// The render window is the actual GUI window
	// that appears on the computer screen
	vtkNew<vtkRenderWindow> renderWindow;
	renderWindow->SetSize(300, 300);
	renderWindow->AddRenderer(renderer);
	renderWindow->SetWindowName("Cylinder");

	// The render window interactor captures mouse events
	// and will perform appropriate camera or actor manipulation
	// depending on the nature of the events.
	vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
	renderWindowInteractor->SetRenderWindow(renderWindow);

	// This starts the event loop and as a side effect causes an initial render.
	renderWindow->Render();
	renderWindowInteractor->Start();

	return EXIT_SUCCESS;
}

注意:设置为X64模式

 运行结果:

5.2、VS中Qt验证VTK

第一步:VS创建一个新项目,选择空项目,我们命名为testQtVTK

 第二步:设置testQtVTK项目属性:右击testQtVTK,选择属性,详见5.1节

第三步:创建一个opengl窗口 

第四步:添加代码

#include "testQtVTK.h"
#include <QSurfaceFormat>
#include <QVTKOpenGLNativeWidget.h>
#include <vtkSphereSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkGenericOpenGLRenderWindow.h>
#include <vtkNamedColors.h>
#include <vtkProperty.h>
#include <vtkSmartPointer.h>

#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingVolumeOpenGL2);
VTK_MODULE_INIT(vtkRenderingFreeType);

testQtVTK::testQtVTK(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::testQtVTKClass())
{
    ui->setupUi(this);
    QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat());
    vtkNew<vtkNamedColors> colors;
    vtkNew<vtkSphereSource> sphereSource;
    vtkNew<vtkPolyDataMapper> sphereMapper;
    sphereMapper->SetInputConnection(sphereSource->GetOutputPort());
    vtkNew<vtkActor> sphereActor;
    sphereActor->SetMapper(sphereMapper);
    sphereActor->GetProperty()->SetColor(colors->GetColor4d("Tomato").GetData());
    vtkNew<vtkRenderer> renderer;
    renderer->AddActor(sphereActor);
    renderer->SetBackground(colors->GetColor3d("SteelBlue").GetData());
    vtkNew<vtkGenericOpenGLRenderWindow> renderWindow;
    renderWindow->AddRenderer(renderer);
    renderWindow->SetWindowName("RenderWindowNoUIFile");
    setCentralWidget(ui->openGLWidget);
    ui->openGLWidget->setRenderWindow(renderWindow);
}

testQtVTK::~testQtVTK()
{
    delete ui;
}

 运行结果:

5.3、QCreator验证VTK

 第一步:新建一个测试工程

第二步:pro文件添加库及头文件目录

#For Release
INCLUDEPATH += "C:\VTK\VTK-9.4.0-install\include\vtk-9.4"
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkcgns-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkChartsCore-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkCommonColor-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkCommonComputationalGeometry-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkCommonCore-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkCommonDataModel-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkCommonExecutionModel-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkCommonMath-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkCommonMisc-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkCommonSystem-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkCommonTransforms-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkDICOMParser-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkDomainsChemistry-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkDomainsChemistryOpenGL2-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkdoubleconversion-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkexodusII-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkexpat-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersAMR-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersCellGrid-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersCore-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersExtraction-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersFlowPaths-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersGeneral-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersGeneric-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersGeometry-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersGeometryPreview-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersHybrid-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersHyperTree-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersImaging-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersModeling-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersParallel-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersParallelImaging-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersPoints-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersProgrammable-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersReduction-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersSelection-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersSMP-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersSources-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersStatistics-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersTemporal-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersTensor-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersTexture-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersTopology-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkFiltersVerdict-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkfmt-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkfreetype-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkGeovisCore-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkgl2ps-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkglad-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkGUISupportQt-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkGUISupportQtQuick-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkGUISupportQtSQL-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkhdf5-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkhdf5_hl-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkImagingColor-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkImagingCore-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkImagingFourier-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkImagingGeneral-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkImagingHybrid-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkImagingMath-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkImagingMorphological-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkImagingSources-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkImagingStatistics-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkImagingStencil-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkInfovisCore-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkInfovisLayout-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkInteractionImage-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkInteractionStyle-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkInteractionWidgets-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOAMR-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOAsynchronous-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOCellGrid-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOCesium3DTiles-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOCGNSReader-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOChemistry-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOCityGML-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOCONVERGECFD-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOCore-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOEngys-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOEnSight-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOERF-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOExodus-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOExport-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOExportGL2PS-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOExportPDF-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOFDS-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOFLUENTCFF-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOGeometry-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOHDF-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOImage-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOImport-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOInfovis-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOIOSS-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOLegacy-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOLSDyna-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOMINC-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOMotionFX-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOMovie-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIONetCDF-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOOggTheora-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOParallel-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOParallelXML-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOPLY-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOSegY-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOSQL-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkioss-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOTecplotTable-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOVeraOut-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOVideo-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOXML-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkIOXMLParser-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkjpeg-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkjsoncpp-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkkissfft-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtklibharu-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtklibproj-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtklibxml2-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkloguru-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtklz4-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtklzma-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkmetaio-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtknetcdf-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkogg-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkParallelCore-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkParallelDIY-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkpng-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkpugixml-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingAnnotation-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingCellGrid-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingContext2D-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingContextOpenGL2-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingCore-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingFreeType-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingGL2PSOpenGL2-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingHyperTreeGrid-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingImage-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingLabel-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingLICOpenGL2-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingLOD-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingOpenGL2-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingQt-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingSceneGraph-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingUI-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingVolume-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingVolumeOpenGL2-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkRenderingVtkJS-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtksqlite-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtksys-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkTestingCore-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkTestingRendering-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtktheora-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtktiff-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtktoken-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkverdict-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkViewsContext2D-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkViewsCore-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkViewsInfovis-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkViewsQt-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkWrappingTools-9.4.lib
LIBS += C:\VTK\VTK-9.4.0-install\lib\vtkzlib-9.4.lib

 第三步:创建一个opengl窗口 

第四步:添加代码

#include "testQtVTK.h"
#include <QSurfaceFormat>
#include <QVTKOpenGLNativeWidget.h>
#include <vtkSphereSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkGenericOpenGLRenderWindow.h>
#include <vtkNamedColors.h>
#include <vtkProperty.h>
#include <vtkSmartPointer.h>

#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingVolumeOpenGL2);
VTK_MODULE_INIT(vtkRenderingFreeType);

testQtVTK::testQtVTK(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::testQtVTKClass())
{
    ui->setupUi(this);
    QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat());
    vtkNew<vtkNamedColors> colors;
    vtkNew<vtkSphereSource> sphereSource;
    vtkNew<vtkPolyDataMapper> sphereMapper;
    sphereMapper->SetInputConnection(sphereSource->GetOutputPort());
    vtkNew<vtkActor> sphereActor;
    sphereActor->SetMapper(sphereMapper);
    sphereActor->GetProperty()->SetColor(colors->GetColor4d("Tomato").GetData());
    vtkNew<vtkRenderer> renderer;
    renderer->AddActor(sphereActor);
    renderer->SetBackground(colors->GetColor3d("SteelBlue").GetData());
    vtkNew<vtkGenericOpenGLRenderWindow> renderWindow;
    renderWindow->AddRenderer(renderer);
    renderWindow->SetWindowName("RenderWindowNoUIFile");
    setCentralWidget(ui->openGLWidget);
    ui->openGLWidget->setRenderWindow(renderWindow);
}

testQtVTK::~testQtVTK()
{
    delete ui;
}

 运行结果:

 

其他示例, 前往VTK示例代码页面,下载并运行与Qt+VTK相关的示例代码。

六、注意事项

  1. 在编译过程中,如果遇到任何错误或警告信息,请仔细检查CMake配置和Visual Studio的输出窗口以获取更多详细信息。
  2. 确保Qt、CMake和Visual Studio的版本相互兼容,以避免潜在的编译问题。
  3. 如果需要调试VTK代码,请确保在Visual Studio中选择了Debug配置进行编译。

参考:

  1. VTK编程指南<二>:VTK9.3.1+VS2019+Qt5.15.2编译及环境配置_vtk源码下载-CSDN博客
  2. https://zhuanlan.zhihu.com/p/390669033
  3. https://blog.csdn.net/m0_37251750/category_12841361.html
  4. 亦我飞也的博客_openCV(1)_51CTO博客
  5. Visual Studio 2019 + Qt5.15.2 + CMake 3.26.0 + VTK8.2.0 + ITK5.2.1 安装教程 - 盏茶 - 博客园
  6. VTK9.1.0在Windows10+VS2019+Qt 5.15.2环境下编译安装以及VTK应用于QT_vtk9+qt-CSDN博客
  7. VTK学习笔记2:windows源代码安装VTK9,并使用Visual Studio 2017配置VTK9-CSDN博客
  8. VS2019+cmake(3.15.3)+VTK(8.2.0)+配置完成后的demo演示_vtk8.2 vs2019编译 “vtkfreetypetoolsfacerequester”: 未-CSDN博客
  9. VS2019配置VTK开发环境 - zxc0210 - 博客园
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩瀚之水_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值