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

相关推荐
weixin_424183617 小时前
开放—封闭原则实战(下):基于策略的流程编排与编译期多态
c++·分布式·系统架构
wuminyu8 小时前
C++协程实现接收端的零拷贝Buffer管理原理剖析
java·linux·c语言·jvm·c++
m0_380743878 小时前
C++中的freopen的用法实例详解
开发语言·c++
Escalating_xu9 小时前
【Python】基础语法(1):常量、变量、类型、输入输出与运算符
开发语言·python
jimy19 小时前
polymorph.cpp里面的“析构函数、智能指针”问题
开发语言·c++
m0_380743879 小时前
PHP 8.3 缓存清除不生效怎么排查
开发语言·php
朝朝辞暮i9 小时前
C++ 第 6 课:switch —— 多状态选择
开发语言·c++·算法
小凡geo10 小时前
本地商家 GEO:用脚本一键生成 FAQPage 结构化数据,让 AI 切片更稳
开发语言·人工智能·python·microsoft·搜索引擎·ai
朝朝辞暮i10 小时前
C++ 第 4 课:if / else —— 让程序自己做决定
开发语言·c++
苏打豆10 小时前
Pinocchio源码阅读——刚体运动物理量空间变换及求导
c++·线性代数·算法·矩阵·机器人