QT C++ QCustomPlot 简单使用

//本文描述QCustomPlot的简单使用,

//使用QCustomPlot 画曲线分5步

//1.初始化

//2.发送

//3.接收

//4.绑定

//5.重绘

//通常单独的线程发送,发送线程通过emit函数或者wake(WakeOne)函数告诉接收方,

//接收方通常是GUI类的函数,把数据放进vector容器

//定时绑定vector容器和重绘,可以比第2步和第3步慢(因为我们有vector容器装好了的)

//在2、3、4、5步循环往复。

//1.初始化

struct CurveInfo

{

QString nameX;// X轴label

QString nameY;// Y轴label

double minX;//X轴最小

double minY;//Y轴最小

double maxX;//X轴最大

double maxY;//Y轴最大

};

initCurve(QCustomPlot* plot, CurveInfo curveInfo)

{

plot->setBackground(QBrush(QColor(220, 220, 220)));//背景灰

plot->addGraph();

plot->graph(0)->setPen(QPen(Qt::blue));//画笔颜色

plot->xAxis->setLabel(curveInfo.nameX);//X轴颜色

plot->yAxis->setLabel(curveInfo.nameY);//Y轴颜色

// 支持鼠标拖拽轴的范围、滚动缩放轴的范围,左键点选图层(每条曲线独占一个图层)

plot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);

plot->xAxis->setRange(curveInfo.minX, curveInfo.maxX);

plot->yAxis->setRange(curveInfo.minY, curveInfo.maxY);

// 设置坐标系格栅背景

// plot->xAxis->grid()->setPen(QPen(Qt::darkGreen));

// plot->yAxis->grid()->setPen(QPen(Qt::darkGreen));

plot->xAxis->grid()->setSubGridVisible(true);//X栅格可见

plot->yAxis->grid()->setSubGridVisible(true);/Y栅格可见

//坐标内背景

plot->axisRect()->setBackground(QBrush(QColor(30, 30, 30)));

plot->replot();

}

//2.发送

//用信号的emit函数或者QwaitCondition的wakeOne()函数

//3.接收

//如果使用QwaitCondition,那么要单独搞个接收线程,GUI是不太可能有死循环的。

//4.绑定

//绑定函数的原型是,第1个参数是横轴对应容器,第2参数是纵轴对应容器,第三个参数可不写

void setData(const QVector<double> &keys,

const QVector<double> &values,

bool alreadySorted=false

);

//5.重绘

//重绘函数的原型是

void replot();

其余可参考

QCustomPlot 曲线各种属性设置介绍_customplot在曲线上添加实心圆点-CSDN博客CustomPlot 曲线各种属性设置介绍_customplot在曲线上添加实心圆点-CSDN博客QCustomPlot 曲线各种属性设置介绍_customplot在曲线上添加实心圆点-CSDN博客

相关推荐
wuyk55511 小时前
98.C语言易混难点:字符数组与字符串指针的底层差异
c语言·开发语言·c++·stm32·嵌入式硬件·算法
峥无11 小时前
从0到1手撕红黑树:封装实现 my_map 与 my_set(SGI-STL 源码级深度解析)
开发语言·c++·笔记·算法·stl
波特率11520011 小时前
C++新特性---属性说明符与标准属性
开发语言·c++
程序员小八77711 小时前
上海百度B端java后端日常实习一面
java·开发语言
wp123_111 小时前
IPX8 防水 Type‑C连接器:安费诺 124018792112A 与 TONEVEE TY48087‑24A 技术梳理
c语言·开发语言
不会代码的小猴11 小时前
3. 控件学习1
开发语言·c++·笔记·qt·算法
fangzhanpeng16812 小时前
(前端)2.js变量作用域样例
开发语言·前端·javascript
mqiqe14 小时前
线程调度与 Schedulers:Project Reactor 并发模型的核心引擎
java·开发语言·网络
xixiaoyunya15 小时前
JavaScript 异步编程全解析:从回调地狱到 async/await 的演进之路
开发语言·javascript·ecmascript
精英的英16 小时前
记一次 Qt5 Language Server 开发
开发语言·vscode·qt