没有合适的资源?快使用搜索试试~ 我知道了~
首页VTK与Qt整合的示例
资源详情
资源评论
资源推荐
1
VTK
与
Qt
整合的示例
VTK 附带的程序示例中大多是基于控制台的,作为可视化开发工具包,VTK 也可以与
很多流行的 GUI 开发工具整合,比如 MFC、Qt(题外话:Qt 已经被 Digia 从诺基亚手中收购
了,Qt 现在的链接是:http://qt-project.org/
,也有已经编译好的版本:
http://code.google.com/p/qt-msvc-installer/downloads/list 直接下载安装。可能因为大学课程里
会教授 MFC 的内容,一些非计算机专业的会偏向于采用 MFC,个人觉得,对于非计算机专
业而言,如果一定要选择一种 GUI 工具做开发的话,建议用 Qt,容易上手,学习周期短)、
FLTK(
http://www.fltk.org/,FLTK 也是跨平台的,是一种比较轻便的 GUI 工具,VTK 官方发
布版本没有提供对 FLTK 的接口,但可以借助类 vtkFlRenderWindowInteractor,来实现 VTK
与 FLTK 的整合)等等,VTK 的源码目录里(VTK-5.10\Examples\GUI)包含有 VTK 与 Qt、MFC、
Tcl 等工具的整合。考虑到 VTK 对 Qt 的特殊照顾(VTK 提供了很多针对 Qt 的类可以非常方
便地与 Qt 整合),以及 Qt 自身的一些性质(如易用性、跨平台等),我们参考了 VTK 自带的
一些例子,给出了 VTK 与 Qt 整合的详细步骤。
1. CMakeLists.txt
文件
我们已经知道了 VTK 工程的管理是用 CMake 的,而 Qt 自身有 qmake 工具,如果对于
一些小工程而言,单纯的 Qt 程序用 qmake 来构建工程,确实很方便,但如果随着工程复杂
度的增加以及工程依赖其他的函数库时,使用 CMake 来管理工程或许是一个明智的选择。
而且随着你对 CMake 语法的了解,你会发现用 CMake 来管理工程是一件非常棒的事情。
我们先看看对于单纯的 Qt 工程,怎么来写 CMakeLists.txt 脚本文件。
1.1
用
CMake
来管理
Qt
工程
官方对于这个话题给出的解释在
这里
。我们引用一下这篇博文的图,然后给出每句
CMakeLists.txt 脚本的注释,结合这个图以及脚本的注释,相信你应该能明白了。
2
#----------------------------------------------
# 下面这两行,没什么好解释的
cmake_minimum_required( VERSION 2.8 )
project( YourProjectName )
#----------------------------------------------
# 下面这两行,也没什么好解释的
find_package( Qt4 REQUIRED )
include( ${QT_USE_FILE} )
#----------------------------------------------
# 程序所有源文件。<TODO:在此处添加源文件>
# 定义变量 Project_SRCS,其值为所列的文件列表
SET( Project_SRCS
main.cpp
)
#----------------------------------------------
# 程序所有 UI 文件。<TODO:在此处添加 UI 文件>
# 定义变量 Project_UIS,其值为所列的文件列表
SET( Project_UIS
YourQtWindows.ui
)
#----------------------------------------------
# 所有包含 Q_OBJECT 的头文件。<TODO:在此处添加头文件>
# 定义变量 Project_MOC_HDRS,其值为所列的文件列表
SET( Project_MOC_HDRS
YourQtProjectFiles.h
)
#-----------------------------------------------
# 通过 Qt 的 uic.exe 生成 UI 文件对应的 ui_XXXX.h 文件
# 将生成的 ui_XXXX.h 文件放在变量 Project_UIS_H 里,
# QT4_WRAP_UI 就是干这个事情。
QT4_WRAP_UI( Project_UIS_H ${Project_UIS} )
#-----------------------------------------------
# 通过 Qt 的 moc.exe 生成包含 Q_OBJECT 的头文件对应的
# moc_XXXX.cxx 文件,将生成的 moc_XXXX.cxx 文件放在
# 变量 Project_MOC_SRCS 里。QT4_WRAP_CPP 就是干这个事情。
QT4_WRAP_CPP( Project_MOC_SRCS ${Project_MOC_HDRS} )
#-----------------------------------------------
3
# Qt 的 MOC 和 UIC 程序生成的 moc_XXXX.cxx 和 ui_XXXX.h
# 等文件是存放在 CMake 的“Where to build the binaries"
# 里指定的目录里,所以必须都这些路径包含进来。
INCLUDE_DIRECTORIES( ${Project_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
#-----------------------------------------------
# Qt 程序如果有资源文件(*.qrc),要包含资源文件,
# 然后用 Qt 的 rcc.exe 生成相应的 qrc_XXXX.cpp 文件。
# QT4_ADD_RESOURCES 就是干这个事情。
SET( Project_RCCS YourProject.qrc)
QT4_ADD_RESOURCES( Project_RCC_SRCS ${Project_RCCS})
#-----------------------------------------------
# 根据程序的 cpp 文件、头文件以及中间生成的 ui_XXXX.h、
# moc_XXXX.cxx、qrc_XXXX.cxx 等生成可执行文件,并链接
# Qt 的动态库(Qt 的动态库都定义在 QT_LIBRARIES 变量里了)
ADD_EXECUTABLE( YourProjectName
${Project_SRCS}
${Project_UIS_H}
${Project_MOC_SRCS}
${Project_RCC_SRCS}
)
TARGET_LINK_LIBRARIES ( YourProjectName ${QT_LIBRARIES} )
1.2
用
CMake
来管理
Qt
与
VTK
工程
我们在上面的基础上添加 VTK 相关的 CMake 脚本文件,如下:
#----------------------------------------------------------------------------------
cmake_minimum_required( VERSION 2.8 )
project( CombineQtAndVTK )
#----------------------------------------------------------------------------------
find_package( VTK REQUIRED )
find_package( Qt4 REQUIRED )
include( ${VTK_USE_FILE} )
include( ${QT_USE_FILE} )
#----------------------------------------------------------------------------------
SET( PROJECT_SRCS
main.cpp
剩余10页未读,继续阅读
umcn
- 粉丝: 1
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1