Qwt使用之QwtPlot

《Qt开发》基于QWT的曲线图绘制 Qwt绘制曲线图 该示例包含以下功能: 1.使用qwt绘制曲线图 2.通过鼠标实现绘图的缩放,只缩放x轴或只缩放y轴或同时缩放 3.设置绘图区域和绘图区域外的背景颜色 4.通过点击图例实现曲线的显示和隐藏 QwtPlot绘图部件 头文件 #include <qwt_plot.h> 枚举类型 enum Axis {yLeft, yRight, xBottom, xTop,axisCnt} 阅读详情
QwtPlot是用来绘制二维图像的widget。在它的画板上可以无限制的显示绘画组件。绘画组件可以是曲线(QwtPlotCurve)、标记(QwtPlotMarker)、网格(QwtPlotGrid)、或者其它从QwtPlotItem继承的组件。
 

QwtPlot拥有4个axes(轴线)

yLeft 
Y axis left of the canvas.
yRight Y axis right of the canvas.
xBottom X axis below the canvas.
xTop X axis above the canvas.
 

常用函数接口

setAxisTitle设置轴标题
enableAxis主要是显示xTop,yRight坐标轴
setAxisMaxMajor设置某个某个坐标轴扩大比例尺的最大间隔数目
setAxisMaxMinor设置某个某个坐标轴缩小比例尺的最大间隔数目
setAxisScale禁用自动缩放比例尺,为某个坐标轴指定一个修改的比例尺
insertLegend添加图例(标注)
 

常用组件

QwtPlotCurve曲线
QwtPlotMarker标记
QwtPlotGrid网格
QwtPlotHistogram直方图
other从QwtPlotItem继承的组件
 
QwtPlotItemplot能显示的类,如果想要实现自己绘画图形,要继承此类实现rtti和draw接口
QwtPlotPanner平移器    (用鼠标左键平移)
QwtPlotMagnifier 放大器    (用鼠标滚轮缩放)
QwtPlotCanvas画布
QwtScaleMap比例图---可以提供一个逻辑区域到实际区域的坐标转换
QwtScaleWidget比例窗口
QwtScaleDiv比例布局
QwtLegent标注
QwtPlotLayout布局管理器
QwtScaleDraw自画坐标轴
 
 

QwtPlotCure简介

 
常见接口
setPen设置画笔
setData设置曲线的数据
setStyle设置曲线形式,点、直线、虚线等等
setCurveAttribute设置曲线属性,一般设置Fitted
attch把曲线附加到QwlPlot上
 
下面看一个小例子,结果如下:
 
 
 
源代码:

 

  1. #include <QtGui/QApplication>  
  2. #include <Qt/qmath.h>  
  3. #include <QVector>  
  4. #include <qwt_plot.h>  
  5. #include <qwt_plot_curve.h>  
  6. #include <qwt_plot_magnifier.h>  
  7. #include <qwt_plot_panner.h>  
  8. #include <qwt_legend.h>  
  9.   
  10. int main(int argc, char *argv[])  
  11. {  
  12.     QApplication a(argc, argv);  
  13.   
  14.     QwtPlot plot(QwtText("CppQwtExample1"));  
  15.     plot.resize(640,400);  
  16.     //设置坐标轴的名称  
  17.     plot.setAxisTitle(QwtPlot::xBottom, "x->");  
  18.     plot.setAxisTitle(QwtPlot::yLeft, "y->");  
  19.     //设置坐标轴的范围  
  20.     plot.setAxisScale(QwtPlot::xBottom, 0.0, 2.0 * M_PI);  
  21.     plot.setAxisScale(QwtPlot::yLeft, -1.0, 1.0);  
  22.     //设置右边标注  
  23.     plot.insertLegend(new QwtLegend(), QwtPlot::RightLegend);  
  24.   
  25.     //使用滚轮放大/缩小  
  26.     (void) new QwtPlotMagnifier( plot.canvas() );  
  27.   
  28.     //使用鼠标左键平移  
  29.     (void) new QwtPlotPanner( plot.canvas() );  
  30.   
  31.     //计算曲线数据  
  32.     QVector<double> xs;  
  33.     QVector<double> ys;  
  34.     for (double x = 0; x < 2.0 * M_PI; x+=(M_PI / 10.0))  
  35.     {  
  36.         xs.append(x);  
  37.         ys.append(qSin(x));  
  38.     }  
  39.     //构造曲线数据  
  40.     QwtPointArrayData * const data = new QwtPointArrayData(xs, ys);  
  41.     QwtPlotCurve curve("Sine");  
  42.     curve.setData(data);//设置数据  
  43.     curve.setStyle(QwtPlotCurve::Lines);//直线形式  
  44.     curve.setCurveAttribute(QwtPlotCurve::Fitted, true);//是曲线更光滑  
  45.     curve.setPen(QPen(Qt::blue));//设置画笔  
  46.   
  47.     curve.attach(&plot);//把曲线附加到plot上  
  48.   
  49.     plot.show();  
  50.   
  51.     return a.exec();  
  52. } 
Qwt QwtPlot类详解 QwtPlot类是Qwt库中最重要的类之一,它提供了一个容器来组织和绘制多个曲线、散点图、条形图、图像等。提供一个绘图窗口,可以在其中绘制简单或复杂的二维数据图。支持多种类型的图表,包括曲线图、柱状图、散点图等。能够自定义图表的外观,包括线条颜色、填充颜色、图例等。支持坐标轴的自定义,包括坐标轴标签、刻度间隔、刻度线风格等。提供交互式功能,如放大、缩小、拖动等。支持多个图层,可以在同一个绘图窗口中叠加绘制不同的图表。支持导出图表为图片文件。 阅读详情

相关推荐

Qwt QwtPlotCurve曲线类详解

QwtPlotCurve是用于绘制曲线图的类。通过QwtPlotCurve,可以将数据点绘制为平滑的曲线,并可以设置曲线的颜色、线宽和线样式等属性。QwtPlotCurve还提供了许多操作和显示曲线数据的方法,例如添加数据点、清空数据、设置数据符号等。2.1数据操作setRawSamples(const double *xData, const double *yData, int size):设置曲线的原始数据,传入x轴和y轴数据数组以及数据的长度。

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 2052

QT学习 之 QwtPlot(数学绘图)

QwtPlot是用来绘制二维图像的widget。在它的画板上可以无限制的显示绘画组件。绘画组件可以是曲线(QwtPlotCurve)、标记(QwtPlotMarker)、网格(QwtPlotGrid)、或者其它从QwtPlotItem继承的组件。QwtPlot拥有4个axes(轴线) 变量 功能 yLeft Y axis left of the canvas. yRight Y

Mr.Phoebe的专栏 2万+

QWT图形界面设计入门指南:QwtPlot与QDialog实战演练

QWT,即Qt Widgets for Technical Applications,是基于Qt库的一个扩展包,专门用于科学和技术应用程序的图形用户界面开发。QWT提供了丰富的图形界面元素,如图表、量表、滑动条等,这些元素都可以轻松集成到Qt项目中,极大提升了开发效率和应用程序的可用性。在本章中,我们将探讨QWT的基本概念和它在现代图形界面开发中的地位。我们会从QWT的设计哲学开始,了解它如何帮助开发者通过拖放操作创建复杂的图表界面。

weixin_42527589的博客 1517

Qwt笔记(二)之QwtPlot简单使用

一.前言 文章只是楼主学习过程的记录,不能面面俱到,也不能每个点都讲到,不喜勿喷 二.QwtPlot是啥?? 文档是这样描述的: QwtPlot is a widget for plotting two-dimensional graphs. An unlimited number of plot items can be displayed on its canvas. Plot items might be curves (QwtPlotCurve), markers (QwtPlotMarker),

我是黄同学博客 4842

Multisim新手必看:从零搭建数字时钟仿真电路(附完整原理图)

本文详细介绍了如何使用Multisim从零开始搭建数字时钟仿真电路,涵盖晶振电路设计、计数电路实现、校时功能配置等关键步骤。通过完整的原理图和实用技巧,帮助新手快速掌握Multisim仿真设计,实现精准的数字时钟功能。

ios99的博客 328

Android蓝牙Mesh组网实战:从零搭建智能灯光控制系统(附完整代码)

本文详细介绍了基于Android平台开发蓝牙Mesh智能灯光控制系统的完整实战流程。从环境搭建、核心概念解析,到设备扫描配网、网络初始化、模型配置与消息通信,提供了完整的代码实现和调试技巧。重点讲解了如何使用开源Mesh库实现设备发现、分组控制、场景管理等核心功能,并分享了实际项目中遇到的典型问题与解决方案。

weixin_29174013的博客 655

qwt之 QwtPlot

QwtPlot 是 Qwt 库中的核心类之一,用于创建和管理二维图形的绘制。它提供了丰富的功能来显示数据曲线、标记、网格线、图例等元素,并且支持多种坐标轴类型(如线性、对数)

一个老菜鸟的学习分享 672

量子通信:初识量子城域网

对量子城域网的概念、作用、拓扑、建设内容等进行了较为全面的初步介绍。

量子领域相关话题 3347

qwt-QwtPlot

学习这个东西方向对了,就对了一半 今天我开始学习基于qt库的一个开源的绘制2维的统计图的库--qwt。 我们画东西首先要有一个容器,不然都是徒劳,今天我们就介绍这个类--QwtPlot 它继承自QFrame和QwtPlotDict,QFrame提供一个QWidget的框架,QwtPlotDict为QwtPlot管理在其中的plot items,就是绘制的项。在QwtPlot上我们

机器视觉 6582

433MHz无线通信

基本概念 工作频率:433.92MHz 调制方式:ASK/OOK,FSK,GFSK 现有遥控与接收器方案中,多数使用ASK/OOK调试方式。ASK即“幅移键控”又称为“振幅键控”,也有称为“开关键控”(通断键控)的,所以又记作OOK(On-Off keyed)信号。ASK是一种相对简单的调制方式。幅移键控(ASK)相当于模拟信号中的调幅,不同的是与载频信号相乘的是二进制数码。幅移就是把频...

沧海孤叶的博客 5万+

MCGS 和 200SMART 时间同步

在实际应用中,PLC经常会因为断电原因,导致时间不准确。假设我们设置了一个投加泵,每天8-18点投加。屏幕上显示的时间和PLC内部的时间,很可能不一样。所以需要在触摸屏上读取PLC的时间,并且提供设置功能。

mmxxoo_xxmmp的博客 1520

QWT错误static struct QMetaObject const QwtPlot

QWT错误static struct QMetaObject const QwtPlot 博客分类:  Qt QWT错误staticstructQMetaObject  使用QWT例子oscilloscope出现如下错误: error LNK2001: unresolved external symbol "public: static struct QMetaObj

System Architect 2127

第二大脑的觉醒:一个寄生在代码里的小生命,如何悄无声息地接管我的工作流

所有记忆都存在本地。

步子哥的博客 1063

QwtPlot解读---from Qwt-6.6.1

QwtPlot--from Qwt-6.6.1 QwtPlot继承自QFrame和QwtPlotDict.QwtPlot是一个二维绘图部件,它只是一个视图窗口,真正的绘图设备是 它的中心部件QwtPlotCanvas.在QwtPlot的画布上可以显示不限数量的基地图元项,图元项可以是QwtPlotCurve, QwtPlotMarker,QwtPlotGrid或任意从QwtPlo

yangchuankai's blog 3036

Microsemi Libero系列教程(二)——新建点灯工程

前言 上一篇文章,介绍了Microsemi Libero系列教程(一)-Libero开发环境介绍,下载,安装与注册,作为嵌入式开发中的Hello World,点灯是再也基础不过的实验了,通过点灯实验,可以了解芯片GPIO的控制和开发环境IDE新建工程的流程,对于FPGA来说,每个IO口几乎一样,所以本篇文章主要学习一下如何基于Microsemi Libero集成开发环境建立一个示例工程,让一个L...

whik1194的博客 1万+

YOLOv11的QAT(训练感知量化)实战

本文总结了YOLO模型量化感知训练(QAT)的实践要点:QAT通过模拟量化噪声训练模型,比训练后量化(PTQ)更适合密集预测任务。关键实现包括:1)配置对称/非对称量化器;2)排除检测头量化;3)调整学习率策略并添加量化正则;4)选择困难样本校准;5)转换前稳定BN统计量。调试时需检查量化范围、数值分布和逐层突变,并注意SPP等敏感层。建议小模型使用QAT,大模型可能适得其反,且TensorRT的FP16模式可能优于INT8-QAT。量化应以功能正确为前提,避免过度优化。

as1225120794的博客 510

关于Qwt的使用-QwtPlot

转自:http://blog.youkuaiyun.com/zhuyunfei/article/details/51150098 1.新建一个qt新工程,往主界面中拖动一个QwtPlot控件,保存后关闭。  ps:如果在设计界面没有,试试qt界面用qt designer打开试试 2.下面开始QwtPlot的简单使用  a)控件的位置移动和大小设置 int width =

努力努力... 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Qwt源码解读之QwtPlot类

QwtPlot类是一个二维绘图部件,继承自QFrame 和 QwtPlotDict。不过严格的说来,它只是一个视图窗口,真正的绘制设备是它的中心部件QwtPlotCanvas类。在QwtPlot的画布上可以显示不限数量的图元项(plot items)。这些图元项可以是曲线(QwtPlotCurve),标签(QwtPlotMarker),网格(QwtPlotGrid),或者其它任意的从QwtPlot

e5Max的专栏 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

重载QwtPlot类编译错误,需宏定义QWT_DLL才能使用QWT抛出类

在使用QWT进行二维曲线绘制,使用方法如下: class Plot: public QwtPlot {    Q_OBJECT …… } 此时报错:error LNK2001: 无法解析的外部符号"public: static struct QMetaObject const QwtPlot::staticMetaObject" 出现这样的连接错误一般都是

xiaobai_2511的博客 783

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: C语言指针学习
下一篇: Qt入门-QLineEdit::setInputMask()
de2dee
博客等级 码龄13年 1粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值