一、简介
Qwt,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供, 输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等。该工具库基于Qt开发,所以也继承了Qt的跨平台特性。
二、使用入门
2.1、编译安装QWT
不懂怎么安装QWT,请查看这篇博客:https://blog.csdn.net/Mr_robot_strange/article/details/108446887
2.2、QwtPlot类分析
学习QWT库,应从QwtPlot这个类开始学起,因为这个类就是QWT图形库的视窗,绘制的图形必须在QwtPlot这个类中才能显示。
QwtPlot是一个用于显示二维图表的widget,可以在它上面的画布中添加无限多个图元项,图元项包括:曲线(QwtPlotCurve)、标记(QwtPlotMarker)、网格线(QwtPlotGrid)、或者任何继承自QwtPlotItem的类。
QwtPlot有4个坐标轴,分别是:上X,下X,左Y,右Y。每一个图元项可以依附到一对X轴和Y轴。坐标轴上的刻度尺可以通过QwtScaleDiv类明确的设定,或者是通过QwtScaleEngine类根据其上的图元项来计算,QwtPlotEngine可以为每个轴单独配置。
2.4、官方示例
流程如下:
- 初始化一个视窗(QwtPlot),QwtPlot初始化自带画布(QwtPlotCanvas);
- 初始化一个图元项(曲线:QwtPlotCurve);
- 给曲线添加数据(setData()或setSample());
- 将图元项贴到视窗上(attach());
- 更新视窗;
代码如下:
#include <qwt_plot.h>
#include <qwt_plot_curve.h>
//初始化视窗
QwtPlot *myPlot = new QwtPlot("Two Curves", parent);
//初始化图元项--曲线
QwtPlotCurve *curve1 = new QwtPlotCurve("Curve 1");
QwtPlotCurve *curve2 = new QwtPlotCurve("Curve 2");
//给曲线添加数据
curve1->setData(...);
curve2->setData(...);
//将图元项--曲线贴到视窗上
curve1->attach(myPlot);
curve2->attach(myPlot);
//更新视窗
myPlot->replot();