当我们使用QT为PCL项目制作UI的时候,需要让QT能够支持"QVTKWidget"。而这个"QVTKWidget"是VTK编译时添加了QT组件时,才会生成的。
大部分"PCL-All-in-One"安装包里的VTK是没有编译QT的。
这篇博客旨在描述,编译VTK时,如何添加QT组件。
Cmake编译过程:
-
下载安装QT(自行百度谷歌)。
-
然后建立3个文件夹,分别命名为:
-
VTK_Src:将VTK的源码存放在此处,作为cmake的代码源路径
-
VTK_Build:cmake创建工程的,目标路径
-
VTK_Install:安装版本的,发布路径
-
-
然后打开Cmake,进行编译:
-
设置源路径及目标路径
-
选择编译器
-
初次配置,点击"Configuration"
-
点击Add Entry,添加CMAKE_PREFIX_PATH,设置为QT的安装路径。
-
点击Add Entry,添加CMAKE_DEBUG_POSTFIX,设置为"-gd"。用来区分debug与release版本下的dll和lib文件,不然的话创建安装文件的时候debug与release版本,名字相同相互覆盖。
-
勾选BUILD_SHARED_LIBIRARES及VTK_GROUP_QT
-
将CMAKE_INSTALL_PREFIX设置为VTK_Install的路径。默认的路径在C盘的Programfiles里面,需要管理员权限才能在默认路径下发布。
-
再次配置,点击"Configuration"
-
将"VTK_QT_VESION"改为5,如果没有cmake没有找到QT5的路径,再次设置。
-
再次配置,点击"Configuration"
-
完成配置"Configuration Done"
-
点击生成"Generate"
-
完成生成"Generate Done"
-
创建安装文件:
-
打开VTK_Build路径下的 VTK.sln
-
在debug_x64下ALL_Build,然后only build "Install"
-
在release_x64下ALL_Build,然后only build "Install"
至此,在"…\VTK_Install\ plugins\designer"的路径下,就可以发现"QVTKWidgetPlugin.dll"了。
将此"QVTKWidgetPlugin.dll"(必须是release版的),添加到你的QT的designer的路径下,"C:\Qt\Qt5.6.2\5.6\msvc2015_64\plugins\designer"。
但是,在我的实际运用中QT自带的Designer打开不*.ui的文件,平且自带的qtCreator是32位的,解析不出这个64位的"QVTKWidgetPlugin.dll"控件。所以,从官网上又下载了64位的qtCreator。
最后顺利在QT的UI设计界面上,添加了QVTKWidget。