win10环境下VTK7.1的编译和Qt调用VTK的详细教程(本文链接含VTK库和测试代码的分享)

1.VTK库在三维可视化显示方面(医学图像、地质、气象等领域)具有广泛的应用,调用该库的传统方式是通过VS,结合Cmake文件进行编译。

 2.Qt在界面设计、编译方面具有良好的优势,如果能使用Qt进行VTK库的调用,这既利于发挥VTK的优势进行算法的研究,又利于发挥Qt的优势进行工程的进展。

 3.然而,目前这方面的参考教程较少或不详细(之所以这样说是因为 目前网上的教程都是在VS中通过安装插件 qt-vs-addin 来实现Qt与VTK的结合的,这样就失去了Qt Creator的优势,因为笔者使用过网上这种方法,发现在VS下编程很不舒服),在使用Qt进行调用过程中会出现未知错误。因此,本文亲自编译VTK库并使用Qt进行调用,一方面对自己以前的研究进行总结,另一方面给大家一些参考,避免花费大量时间。

4.本文在win10 64位系统下进行vtk的编译和测试,已经安装好Visual Studio 2013 编译器,主要介绍两大部分:在windows环境下编译VTK库Qt调用VTK详细步骤。(教程会编译的VTK库和测试代码进行分享,如有需要可上网下载或直接与我联系,详情见本文第五部分)

一、准备工作

本文需要的软件和库如下:

1.Qt下载地址:http://download.qt.io/archive/qt/5.5/5.5.1/ 下载文件:  qt-opensource-windows-x86-msvc2013_64-5.5.1.exe

2.cmake 下载地址:https://cmake.org/download/  下载文件:cmake-3.9.3-win64-x64.msi

3.vtk 下载地址:https://www.vtk.org/download/  下载文件:VTK-7.1.1.zip

二、编译VTK(支持Qt)

对于Qt的安装这里不详细说明,建议安装过程库文件全选,这样安装目录就会包含Qt源代码,方便后续与VTK结合。

Cmake的安装按照默认即可。

对于VTK的编译部分,由于篇幅问题,请参考笔者另一篇博客,win10环境下VTK7.1的编译和Qt调用VTK的详细教程二(VS2013编译支持Qt的VTK库)

三、配置环境变量

完成编译后,在C:\Program Files目录下会生成一个VTK文件夹,添加系统环境变量: C:\Program Files\VTK\bin

在VTK目录下,建立一个文本文件libsname.txt,里面写入   DIR D:\lib\lib /B >libsname.txt,该文件就会写下lib目录下的所有文件名称,如下所示,共计115个lib文件。

vtkalglib-7.1.lib
vtkChartsCore-7.1.lib
vtkCommonColor-7.1.lib
vtkCommonComputationalGeometry-7.1.lib
vtkCommonCore-7.1.lib

.......

四、测试  

打开Qt Creator,新建一个项目,依次选择 “文件(F)”,“Application”,“Qt Widgets Application”,"Choose",项目命名为:testQtVTK7,如图1所示。

图1  新建项目选项
 
新建的项目中,在testQtVTK7.pro中添加引用VTK环境的配置,如图2,红色方框部分是项目调用VTK所需要的环境(实际就是前文libsname.txt文件中所有的lib名称,本文第五部分分享的下载项目里面会有完整的配置):
  图2 testQtVTK7.pro文件配置
 
经过上述步骤就可以在testQtVTK7项目中引用VTK库并进行开发了。
在项目中新建一个类TestVTK,并在该类中添加一个test()方法,该方法实现测试vtk。
然后在主方法中调用test()方法,并进行编译运行(release版本),会出现错误,提示Error: no override found for 'vtkPolyDataMapper'。需要在主方法前添加如下代码(图3红色方框部分)
 图3  main添加代码
 
然后在编译运行,就会运行如下界面,实现Qt成功调用VTK库,恭喜一切搞定。
图4 Qt调用vtk测试
 
五、关于本文库和代码的说明
对于想要亲自动手实践的开发者可以参考上述第一、二、三、四步,然而对于没有经验的开发者,在编译过程中可能会出现许多错误,会浪费大量的精力和时间,让人很有挫败感。
为了能尽快地投入到开发中,使用Qt快速调用VTK,本文将上述编译好的VTK库和testQtVTK7测试项目代码进行分享,请按照下述说明进行快速配置,就可以直接使用了前提是请确保自己的系统是Windows 64系统,VS为2013版本,Qt为  qt-opensource-windows-x86-msvc2013_64-5.5.1。因为本文生成的VTK是64位Relese版本,使用vs2013编译的,不满足黄色部分条件可能会出现错误,无法调用,即使满足操作系统、VS版本,使用不同的Qt版本也有可能出错。(猜测是VTK与Qt版本不兼容,毕竟这两者更新的都挺频繁,是否适用还看运气和缘分)
 
为方便读者获取最新代码,本文将项目公布在Github上,读者可自行下载,网址为: https://github.com/tianhu9102/testQtVTK7
或者可以在百度云盘上下载,如下图5所示,链接:http://pan.baidu.com/s/1kVKJEnH   密码:m85v
 
 图5 VTK库与测试代码分享页面
 
下载完毕后,请将VTK.rar解压到如下目录(图6),并配置环境变量: C:\Program Files\VTK\bin
 
图6 VTK解压目录
 
使用Qt Creator打开测试项目,在选项中取消Debug选项(图7,本文编译的vtk为release版本,如选择debug将会出错),点击Configure Project,最终就会成功运行项目。
 
 图7 Qt编译选项
 
 
 
 
 
 
 
posted @ 2017-10-08 21:39  Vtianhu  阅读(7925)  评论(1编辑  收藏  举报