Qt+VTK配置

1 篇文章 0 订阅

Qt+VTK配置

  1. 安装
    正常安装Qt(本人Qt5.14 creator版本4.11,自带mingw7.3)
    官网下载vtk(8.2.0)
    官网下载cmake
  2. Cmake配置
    cmake打开时候,提示工程选择生成什么工程,可以使mingw的makefile,也可以是vs项目
    这里最好与qt的保持一致,打开qt->帮助->about qt creator->based on *****
    我这儿选的是
    mingw makefile**
    然后填好目录,点configure
    出来一大片红色的(有可能出来内容不同,需要多次点击configure,会一批一批的出来的)需要修改其中几个
    在这里插入图片描述
    不断点击configure直到没有红色
    点击generete生成项目文件,会在where to build the binaries生成makefile
  3. build
    在binaries目录打开cmd
    输入> make all -j4
    make是mingw里面的mingw-make.exe,没有的话请添加到path
    编译完后
    输入> make install
    会将东西复制到上面cmake_install_prefix目录
    这是后vtk编译完成
  4. 将插件复制到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
    我也不清楚具体哪个,反正都放进去了
  5. 使用designer
    这时候打开qtdesigner,是单独的exe不是creator里面的
    里面就有vtkwidget了
    因为我的qt 是baseon vs的,而这个插件是用makefile生成的 所以qtcreator里面的designer没有vtk插件
  6. qtcreator中使用vtkwidget
    打开ui,放一个最正常的widget控件(QWidget)
    右键->提升为
    里面输入QVTKOpenGLWidget,然后会自动添加qvtkopenglwidget.h
    这样就成功放入QVTKOpenGLWidget了
    有人会用QVTKWidget,同样的方法,但是现在已经会提示这个控件要马上被淘汰了,直接用最新的吧。
    但是qt里面还没有添加这个include
  7. 配置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"
.... ....
  1. 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()
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值