QT C++ QCustomPlot 简单使用

25 篇文章 0 订阅

//本文描述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博客

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值