QWT编译、配置、使用(VS2012+Qt5.4.2,这里和VS QT版本都无关,亲自测过其他版本的VS和QT都没有问题,本文档以VS2012+Qt5.4.2为例编写)
(主要参考http://blog.sina.com.cn/s/blog_a6fb6cc90101gks5.html)
QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目,可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据,数据源以数值,数组或一组浮点数等方式提供,输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等。该工具库基于Qt开发,所以也继承了Qt的跨平台特性。
QWT源码获取:
进入QWT的官方网站http://qwt.sourceforge.net/,找到svn下载地址,如下图所示,选择需要的版本,这里选择qwt-6.1。
如果你的操作系统没有安装svn,请先安装svn,下载地址在这里:https://tortoisesvn.net/downloads.html
从SVN仓库获得QWT源码工程,如下图所示:
a) 编译QWT库
打开vs开发人员命令行(如果从普通cmd进去可能找不到nmake),进入到刚刚svncheckout的目录,我这里是E:\Software\qwt-6.1,运行:
qmake qwt.pro;
nmake;
nmake install(默认将编译的库安装到C盘下,这一步也可以不做,后面选择直接将库拷贝到Qt相应的目录下)
b) 编译例子
进入到examples目录下,执行:
qmake example.pro;
nmake;
环境配置:
方法1:借助Qt的环境配置,将qwt-6.1\lib 下的qwt.lib 、qwtd.lib 拷贝QT的lib路径下;将qwt-6.1\lib下的qwt.bin、qwtd.lib下的qwt.dll、qwtd.dll拷贝到QT的bin路径下;将qwt-6.1\src下的所有.h文件拷贝到QT的include\QWT路径下。
方法2:在编译qwt工程时,使用nmakeinstall将库和头文件安装到C盘,并在环境变量里设置path环境变量。
进行如上两种方法之一的配置之后就可运行生成的demo程序了,比如运行qwt-6.1\examples\bin 目录下的tvplot.exe,画面如图:
另外将qwt-6.1\designer\plugins\designer的dll和lib文件拷贝到QT的plugins\disgner目录下,这样就可在QT设计师里使用QWT组件了,如下图所示:
在VS中使用QWT:
1. 新建一个QT界面程序
2. 工程设置
属性->配置属性->链接器->输入,附加依赖项:qwtd.lib
属性->配置属性->C/C++->预处理器,预处理器定义:QWT_DLL
3.举一个使用QWT组件绘制2维矩阵数据等高线的例子
使用QwtPlotSpectrogram类绘制等高线,类图:
CIsodoseCurves是数据类,存储了一个3维矩阵数据,矩阵数据从文件获取;
Contor是主窗口类,主窗口界面如下图所示,当点击绘图时会绘制3维矩阵数据的一个2维平面的矩阵数据的等高线,并在窗口中显示,如下图。
QwtPlotSpectrogramText继承自QwtPlotSpectrogram类,重新实现了drawContourLines函数,使在绘制登高显示在登高线附近能绘制登高线的值;
plot继承自QwtPlot,提供绘制登高线的窗口,每次点绘图按钮就会创建一个plot对象。
从画面效果可以看出QWT绘制的图形效果还是不错的。[email protected]