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博客

相关推荐
liangshanbo12153 分钟前
手写 Function.prototype.call 与 Function.prototype.apply 面试题满分答案
开发语言·javascript·原型模式
Zenova EdgeOS5 分钟前
C++ 工业边缘 libcurl HTTP 客户端实战
开发语言·c++·网络协议·边缘计算
Jackson_GJH29 分钟前
Qt 右键自定义菜单的实现
开发语言·c++·qt
张小姐的猫32 分钟前
【AI大模型接入SDK】 —— Gemini接入封装
android·数据结构·数据库·c++·人工智能·python
CoderYanger1 小时前
前端基础——JavaScript(WebAPI)(下篇)
java·开发语言·前端·javascript·程序人生·面试·职场和发展
一木 之林1 小时前
七、一-AI 工程实践、插件化调试与软件交付
java·linux·c++
小木_.2 小时前
Python 离线识别滑块缺口距离,项目推荐
开发语言·python·滑块识别·人机验证·滑块缺口·缺口识别
liliangcsdn2 小时前
因子权重矩阵处理-因子权重收缩Shrinkage算法的探索
开发语言·python·机器学习
Murphy_lx3 小时前
1124. 表现良好的最长时间段
c++·算法
aramae3 小时前
模拟实现strstr函数(C语言)
c语言·开发语言·算法