1、QT和VTK的版本有较重要的要求,我使用的是:QT-5.12.0,VTK-7.0;
2、VTK配置好后,在环境变量中添加:
PCL_ROOT F:\PCL-1.8.0
%PCL_ROOT%\3rdParty\VTK\bin
3、将QVTKWidgetPlugin.dll复制到QT-install\5.12.0\msvc2015_64\plugins\designer文件夹下,正常情况下,Qt文件夹下就只有qaxwidget.dll和qquickwidget.dll
3、在Qt的ui中,添加widget,右键提升为QVTKWidget;
4、在.pro文件中添加:
INCLUDEPATH += F:/PCL/PCL-1.8.0/vtk7.0backup/include/vtk-7.0
LIBS += -LF:/PCL/PCL-1.8.0/vtk7.0backup/lib/Debug\
-lvtkalglib-7.0\
-lvtkChartsCore-7.0\
-lQVTKWidgetPlugin\
-lvtkCommonColor-7.0\
-lvtkCommonComputationalGeometry-7.0\
-lvtkCommonCore-7.0\
-lvtkCommonExecutionModel-7.0\
-lvtkCommonCoreCxxTests\
-lvtkCommonDataModel-7.0\
-lvtkCommonMath-7.0\
-lvtkCommonMisc-7.0\
-lvtkCommonSystem-7.0\
-lvtkCommonTransforms-7.0\
-lvtkDICOMParser-7.0\
-lvtkDomainsChemistry-7.0\
-lvtkDomainsChemistryOpenGL2-7.0\
-lvtkexoIIc-7.0\
-lvtkexpat-7.0\
-lvtkFiltersAMR-7.0\
-lvtkFiltersCore-7.0\
-lvtkFiltersExtraction-7.0\
-lvtkFiltersFlowPaths-7.0\
-lvtkFiltersGeneral-7.0\
-lvtkFiltersGeneric-7.0\
-lvtkFiltersGeometry-7.0\
-lvtkFiltersHybrid-7.0\
-lvtkFiltersHyperTree-7.0\
-lvtkFiltersImaging-7.0\
-lvtkFiltersModeling-7.0\
-lvtkFiltersParallel-7.0\
-lvtkFiltersParallelImaging-7.0\
-lvtkFiltersProgrammable-7.0\
-lvtkFiltersSelection-7.0\
-lvtkFiltersSMP-7.0\
-lvtkFiltersSources-7.0\
-lvtkFiltersStatistics-7.0\
-lvtkFiltersTexture-7.0\
-lvtkFiltersVerdict-7.0\
-lvtkfreetype-7.0\
-lvtkGeovisCore-7.0\
-lvtkglew-7.0\
-lvtkGUISupportQt-7.0\
-lvtkGUISupportQtSQL-7.0\
-lvtkhdf5_hl-7.0\
-lvtkhdf5-7.0\
-lvtkImagingColor-7.0\
-lvtkImagingCore-7.0\
-lvtkImagingFourier-7.0\
-lvtkImagingGeneral-7.0\
-lvtkImagingHybrid-7.0\
-lvtkImagingMath-7.0\
-lvtkImagingMorphological-7.0\
-lvtkImagingSources-7.0\
-lvtkImagingStatistics-7.0\
-lvtkImagingStencil-7.0\
-lvtkInfovisCore-7.0\
-lvtkInfovisLayout-7.0\
-lvtkInteractionImage-7.0\
-lvtkInteractionStyle-7.0\
-lvtkInteractionWidgets-7.0\
-lvtkIOAMR-7.0\
-lvtkIOCore-7.0\
-lvtkIOEnSight-7.0\
-lvtkIOExodus-7.0\
-lvtkIOExport-7.0\
-lvtkIOGeometry-7.0\
-lvtkIOImage-7.0\
-lvtkIOImport-7.0\
-lvtkIOInfovis-7.0\
-lvtkIOLegacy-7.0\
-lvtkIOLSDyna-7.0\
-lvtkIOMINC-7.0\
-lvtkIOMovie-7.0\
-lvtkIONetCDF-7.0\
-lvtkIOParallel-7.0\
-lvtkIOParallelXML-7.0\
-lvtkIOPLY-7.0\
-lvtkIOSQL-7.0\
-lvtkIOVideo-7.0\
-lvtkIOXML-7.0\
-lvtkIOXMLParser-7.0\
-lvtkjsoncpp-7.0\
-lvtkjpeg-7.0\
-lvtklibxml2-7.0\
-lvtkmetaio-7.0\
-lvtkNetCDF_cxx-7.0\
-lvtkNetCDF-7.0\
-lvtkoggtheora-7.0\
-lvtkParallelCore-7.0\
-lvtkpng-7.0\
-lvtkproj4-7.0\
-lvtkRenderingAnnotation-7.0\
-lvtkRenderingContext2D-7.0\
-lvtkRenderingContextOpenGL2-7.0\
-lvtkRenderingCore-7.0\
-lvtkRenderingFreeType-7.0\
-lvtkRenderingImage-7.0\
-lvtkRenderingLabel-7.0\
-lvtkRenderingLOD-7.0\
-lvtkRenderingOpenGL2-7.0\
-lvtkRenderingQt-7.0\
-lvtkRenderingVolume-7.0\
-lvtkRenderingVolumeOpenGL2-7.0\
-lvtksqlite-7.0\
-lvtksys-7.0\
-lvtkTestingGenericBridge-7.0\
-lvtkTestingIOSQL-7.0\
-lvtkTestingRendering-7.0\
-lvtktiff-7.0\
-lvtkverdict-7.0\
-lvtkViewsContext2D-7.0\
-lvtkViewsCore-7.0\
-lvtkViewsInfovis-7.0\
-lvtkViewsQt-7.0\
-lvtkzlib-7.0\
-lqtmaind\
-lQt5Cored\
-lQt5Widgetsd\
-lQt5Guid\
5、此时运行,会报错:
(1)、Error:no override found for "vtkRenderer"/"vtkImageMapper"
方法:在头文件中,添加相应的宏,对VTK模块初始化
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2)
(2)Warning: In D:\VTK\VTK-6.3.0\Rendering\Core\vtkInteractorStyleSwitchBase.cxx, line 43
vtkInteractorStyleSwitchBase (00000293C389B540): Warning: Link to vtkInteractionStyle for default style selection.
方法:VTK_MODULE_INIT(vtkInteractionStyle)
(3)
ERROR: In F:\VTK\VTK-7.0\Rendering\Core\vtkTextMapper.cxx, line 543
vtkTextMapper (000001215D0AA770): Could not locate vtkTextRenderer object.
方法:VTK_MODULE_INIT(vtkRenderingFreeType)