qwt是一个基于lgpl版权协议开源项目,其目标是提供一

qwt是一个基于lgpl版权协议开源项目,其目标是提供一

ID:19457018

大小:287.50 KB

页数:6页

时间:2018-09-27

qwt是一个基于lgpl版权协议开源项目,其目标是提供一_第1页
qwt是一个基于lgpl版权协议开源项目,其目标是提供一_第2页
qwt是一个基于lgpl版权协议开源项目,其目标是提供一_第3页
qwt是一个基于lgpl版权协议开源项目,其目标是提供一_第4页
qwt是一个基于lgpl版权协议开源项目,其目标是提供一_第5页
资源描述:

《qwt是一个基于lgpl版权协议开源项目,其目标是提供一》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Qwt是一个基于LGPL版权协议的开源项目,其目标是提供一组2D的窗体库显示技术领域的数据,数据源以浮点数组或范围的方式提供,输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),compasses(仪表盘)等等。该工具库基于Qt开发,所以也继承了Qt的跨平台特性,据原作者文档所说,该项目在Qt-win/Qt-x11/Qt-embedded(qvfb环境)上都测试过,运行正常。项目的主页在:http://qwt.sourceforge.net/在网上搜了一下,发现关于qwt的中文资料实在很少,基本上只有关于

2、编译和安装的文章。实际上经过笔者实践,Qwt的编译和运行实在乏善可陈,qmake;make就可以搞定,没什么可memo的东西,所以这篇文章将以扫盲为主,介绍Qwt的feature。当然按照正常的顺序,我们还是从编译安装开始。从svn服务器上下载最新代码:svncohttps://qwt.svn.sourceforge.net/svnroot/qwt/trunk/qwt进入qwt目录,运行你电脑上qt4对应的qmake,再运行make编译。如笔者环境中是$cdqwt$exportPATH=/usr/local/Trolltech/Qt

3、-4.5.1/bin/:$PATH$qmake$make编译要花个几分钟的时间。成功后在lib下会生成libqwt.so*文件,并且examples也参与编译,生成的binary在examples/bin下,我们可以运行这些例子初步查看qwt的功能。$export LD_LIBRARY_PATH=$PWD/lib$cdexamples/bin$./simplesimple是qwt自带的例子中最简单的一个,一共只有一百来行的代码,实现了数学中的正弦函数(sin())和余弦函数(cos())曲线。如下图:这个例子里用到的核心类有四个(以

4、下内容是笔者的理解,有可能有不对的地方,请酌情阅读):QwtPlot类似一个2D绘图的容器,里面可以放其他的QwtPlotItem派生类对象,比如本例子中使用的QwtPlotMarker等。(有点类似Qt里的graphicsview的感觉。)这个类负责控制绘图数据的产生和传递,并且绘制一个坐标轴。QwtPlotMarker标尺类,用于绘制刻度线。QwtPlotCurve曲线类,用于绘制各种曲线。QwtSyntheticPointData比较奇怪,这是个undocumented的类,估计不小心被作者遗漏了,文档中没有提供该类的说明,只

5、能从源码中寻找答案了,这一点很让人郁闷。通过看code当中的注释和例子代码,笔者的理解是该类负责产生数据,它的作用是提供固定数量的浮点数的点,点的数量在构造类时传入。获取数据时QwtPlotCurve类会调用该类的y()方法获取纵坐标。程序的基本流程是:1、初始化绘图容器,设置坐标轴的参数//SetaxessetAxisTitle(xBottom,“x–>”);setAxisScale(xBottom, 0.0,10.0);//横坐标从0到10,xBottom表示横坐标的方向从下往上setAxisTitle(yLeft,“y–>”)

6、;setAxisScale(yLeft, -1.0,1.0);//纵坐标-1到1,yLeft表示纵坐标的方向从左到右2、添加正弦余弦曲线//InsertnewcurvesQwtPlotCurve*cSin=newQwtPlotCurve(”y=sin(x)”);#ifQT_VERSION>=0×040000cSin->setRenderHint(QwtPlotItem::RenderAntialiased);#endifcSin->setPen(QPen(Qt::red));//红色曲线cSin->attach(this);QwtP

7、lotCurve*cCos=newQwtPlotCurve(”y=cos(x)”);#ifQT_VERSION>=0×040000cCos->setRenderHint(QwtPlotItem::RenderAntialiased);#endifcCos->setPen(QPen(Qt::blue));//蓝色曲线cCos->attach(this);3、设置曲线的数据内容//CreatesinandcosdatacSin->setData(FunctionData(::sin));cCos->setData(FunctionDat

8、a(::cos));4、添加横纵标尺线作为坐标的参照//Insertmarkers//…ahorizontallineaty=0…QwtPlotMarker*mY=newQwtPlotMarker();mY->setLabel(QSt

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。