2024年1月14日发(作者:)
系统win7 64位,已装vs2012,所有软件安装及打开都用管理员身份。
下面详细介绍QT和VTK结合开发的环境配置步骤
1. 下载软件版本及地址
① qt的安装文件qt-opensource-windows-x86-msvc2012_
/archive/qt/5.3/5.3.2/
② qt的vs2012插件
/downloads
③
/detail/dedje/8276415
④
/files/release/6.1/
⑤
/files/release/6.1/
2. 安装qt
分别执行上面的①②后,添加系统路径。
变量名:PATH
变量值:D:QtQt5.3.25.3msvc2012_openglbin
(qt安装在D:QtQt5.3.2目录,qt插件安装在D:Qt目录)
打开VS2012,选择菜单->qt5->qt options->qt versions->add,在path中填入的上级目录,(我的在D:QtQt5.3.25.3msvc2012_openglbin,所以填入的目录是D:QtQt5.3.25.3msvc2012_opengl)。
至此你就可以在VS2012中创建qt项目了。
下面开始配置VTK。
3. 把④⑤解压到D:VTK6下,④改名为VTKSource,⑤改名为VTKData
解压③后安装cmake,我的安装路径是在D:VTK6CMake 2.8
(1) 打开
在sourcecode和build里面分别填上刚才的源文件及要放在编译文件的路径。点击Configure,选择visual studio 11,(虽然是64位系统,但是有教程建议不要选visual studio
11 win64,我没有试过选了会怎么样)。
等待配置完成后,会有错误发生,需要做如下修改:
build_shared_libs 勾选
点击addentry,添加qt的安装路径
vtk_group_qt 勾选
再次点击configure,完成后再做如下修改
vtk_qt_version改成5,确认QT_QMAKE_EXECUTABLE为你的的地址,再次configure,没有错误后点击Generate,生成项目文件。
(2) 在你的编译文件路径下(D:VTK6VTKBin2)找到,以管理员方式打开,准备两次编译:
A.release版本编译
选择生成解决方案即可,完成后可能会有SAFESEH错误,只要找到相关项目,在链接->命令行中加入/safeseh:no,然后再次生成解决方案。
B.debug版本编译
和release编译步骤相同。
待完成后,把release中的,拷贝到D:QtQt5.3.25.3msvc2012_openglpluginsdesigner下,然后打开qt designer就可以看到qvtk选项了。
(3)上面的步骤只是将下载下来的VTK源码在windows的平台上生成了相当于setup文件,就是install工程,还需要在编译 install工程才能在cmake时候的变量CMAKE_INSTALL_PREFIX下生成安装文件,(在前面编译的时候INSTALL工程都是skip的,没有编译),在visual studio 中的solution中找到INSTALL,点击BUILD ONLY
PROJECT,build安装,如下图。
这样就会在C:Program Files(x86)VTK下生成如下文件:
表示vtk安装成功。
(4)添加系统路径
PATH=C:ProgramFiles (x86)VTKbin
QTDIR=D:QtQt5.3.25.3msvc2012_opengl
以上就完成了所以的配置,下面举例如何建立自己的项目
1. 打开vs2012,创建新项目,选择Qt Application
(2)在中添加如下代码
[cpp] view plain copy
#define vtkRenderingCore_AUTOINIT
4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL)
//#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)A
#include "aa.h"//改成你自己项目的头文件
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc,char **argv)
{
QApplication app(argc,argv);
QVTKWidget widget;
(256,256);
vtkSmartPointer
sphereSource->Update();
vtkSmartPointer
sphereMapper->SetInputConnection(sphereSource->GetOutputPort());
vtkSmartPointer
sphereActor->SetMapper(sphereMapper);
vtkSmartPointer
vtkSmartPointer
renderWindow->AddRenderer(renderer);
renderer->AddActor(sphereActor);
renderer->ResetCamera();
derWindow(renderWindow);
();
();
return EXIT_SUCCESS;
}
添加包含目录及所有的库文件。最终结果如下。


发布评论