基于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脚本的注释,结合这个图以及脚本的注释,相信你应该能明白了。

 

#----------------------------------------------
# 下面这两行,没什么好解释的
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} )
 
#-----------------------------------------------
# Qt的MOC和UIC程序生成的moc_XXXX.cxx和ui_XXXX.h
# 等文件是存放在CMake的“Where to build the binaries"
# 里指定的目录里,所以必须都这些路径包含进来。
INCLUDE_DIRECTORIES( ${Project_SOURCE_DIR}
                     ${CMAKE_CURRENT_BINARY_DIR}
                   )
 
#----------------------------------
  • 12
    点赞
  • 124
    收藏
    觉得还不错? 一键收藏
  • 49
    评论
TK、VTK、CTK和Qt都是跨平台的开发框架和工具。它们可以帮助开发人员在不同的操作系统上开发应用程序,例如Windows、Linux和MacOS。 TK(ToolKit)是一个开源的图形用户界面(GUI)工具包,用于开发基于Python的应用程序。它提供了一组丰富的控件和函数,使开发人员能够轻松地创建和管理应用程序窗口、按钮、文本框等元素。TK可以在不同的操作系统上运行,并且应用程序可以在这些平台之间共享和交付。 VTK(Visualization Toolkit)是一个用于三维计算机图形的跨平台库。它提供了一系列算法和数据结构,可用于可视化和分析各种科学和工程数据。VTK支持多种编程语言,包括C++和Python,并可以在不同的操作系统上使用。 CTK(Common Toolkit)是VTK的扩展,提供了更多的功能和工具,以简化VTK应用程序开发。CTK为开发人员提供了从控件到处理算法的全套解决方案,使他们能够更快地构建和测试VTK应用程序Qt是由Digia开发的一个跨平台应用程序框架。它提供了一系列C++类和函数,用于开发图形用户界面和应用程序功能。Qt可以用于开发桌面应用程序、嵌入式设备以及移动平台上的应用程序开发人员可以使用Qt的功能和工具来创建漂亮和功能强大的应用程序,并在各种操作系统上轻松进行部署。 总的来说,TK、VTK、CTK和Qt都是强大的跨平台开发工具,可以帮助开发人员在不同的操作系统上构建应用程序,并共享和交付这些应用程序。无论是进行科学可视化、图形用户界面开发,还是创建各种应用程序,这些开发框架和工具都能提供所需的功能和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 49
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值