Qt+VTK配置
- 安装
正常安装Qt(本人Qt5.14 creator版本4.11,自带mingw7.3)
官网下载vtk(8.2.0)
官网下载cmake - Cmake配置
cmake打开时候,提示工程选择生成什么工程,可以使mingw的makefile,也可以是vs项目
这里最好与qt的保持一致,打开qt->帮助->about qt creator->based on *****
我这儿选的是mingw makefile**
然后填好目录,点configure
出来一大片红色的(有可能出来内容不同,需要多次点击configure,会一批一批的出来的)需要修改其中几个
不断点击configure直到没有红色
点击generete生成项目文件,会在where to build the binaries生成makefile - build
在binaries目录打开cmd
输入> make all -j4
make是mingw里面的mingw-make.exe,没有的话请添加到path
编译完后
输入> make install
会将东西复制到上面cmake_install_prefix目录
这是后vtk编译完成 - 将插件复制到Qt
将vtk安装目录下的plugins->designer->libQVTKWidgetPlugin.dll文件,复制到QT的安装目录
D:\Qt\Qt5.14.1\5.14.1\mingw73_64\plugins\designer
D:\Qt\Qt5.14.1\Tools\QtCreator\bin\plugins\designer
我也不清楚具体哪个,反正都放进去了 - 使用designer
这时候打开qtdesigner,是单独的exe不是creator里面的
里面就有vtkwidget了
因为我的qt 是baseon vs的,而这个插件是用makefile生成的 所以qtcreator里面的designer没有vtk插件 - qtcreator中使用vtkwidget
打开ui,放一个最正常的widget控件(QWidget)
右键->提升为
里面输入QVTKOpenGLWidget,然后会自动添加qvtkopenglwidget.h
这样就成功放入QVTKOpenGLWidget了
有人会用QVTKWidget,同样的方法,但是现在已经会提示这个控件要马上被淘汰了,直接用最新的吧。
但是qt里面还没有添加这个include - 配置QT Pro文件
在Pro文件里面最后加入这些,includepath是安装目录下的一些.h文件所在目录
libs是一些.a(可能是.lib)所在目录
根据版本不同可能内有有变,后面附一个python脚本,大家自己执行获取下就行了
INCLUDEPATH += "C:\Program Files (x86)\VTK\include\vtk-8.2"
LIBS += "C:\Program Files (x86)\VTK\lib\libvtkChartsCore-8.2.dll.a"
LIBS += "C:\Program Files (x86)\VTK\lib\libvtkCommonColor-8.2.dll.a"
LIBS += "C:\Program Files (x86)\VTK\lib\libvtkCommonComputationalGeometry-8.2.dll.a"
.... ....
- main函数
最后在main函数上加入这几行
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);//可能是vtkRenderingOpenGL,都试试 通过就行了
VTK_MODULE_INIT(vtkInteractionStyle);
python脚本:
import os
def main():
BASEDIR = "C:\\Program Files (x86)\\VTK\\lib\\"
fn = os.listdir(BASEDIR)
with open("lib.txt",'w') as fp:
for i in fn:
fp.write("LIBS += "+"\"C:\\Program Files (x86)\\VTK\\lib\\"+i+"\"\n")
print("hello")
if __name__=="__main__":
main()