没有合适的资源?快使用搜索试试~ 我知道了~
首页VTK与Qt整合的示例
VTK与Qt整合的示例

VTK 附带的程序示例中大多是基于控制台的,作为可视化开发工具包,VTK 也可以与很多流行的 GUI 开发工具整合,比如 MFC、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页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1