QCustomPlot的使用(2)——动态曲线绘制

本文介绍了如何使用QCustomPlot库动态更新曲线,包括曲线数据的更新和坐标轴的动态调整。通过设置定时器、连接信号槽函数,实现数据变化时曲线的实时重绘。同时,讲解了QByteArray数据的处理,如转换为HEX、数值类型、字符串以及大小写转换,这些在处理串口数据时非常实用。
摘要由CSDN通过智能技术生成

动态曲线包括曲线动态更新和坐标轴动态更新。
大体步骤:

  1. 曲线初始化;
  2. 定时器设定、connect()函数连接信号与槽函数;
  3. 槽函数中数据更新、曲线重新绘制;

示例代码:

........
	//分配定时器
     mDataTimer = new QTimer(this);
	 //connect()函数对定时器信号和槽函数进行连接
     connect(mDataTimer, SIGNAL(timeout()), this, SLOT(timerSlot()));
     //设定超时时间为500ms,并开启定时器
     mDataTimer->start(500);
//定时器超时槽函数处理
void MainWindow::timerSlot()
{
   
    static int i=0;
    key++;
    if(i%2==1){
   
        ui->widget->graph(0)->addData(key,y);
    }else{
   
        ui->widget->graph(0)->addData(key,y-10);
    }
    //更新X轴坐标范围
    ui-
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
qcustomplot是一个基于Qt的绘图库,用于快速绘制各种类型的图表,包括动态曲线图。下面是一个简单的示例程序,演示如何使用qcustomplot绘制动态曲线图。 ```cpp #include <QApplication> #include <QTimer> #include "qcustomplot.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); // 创建QCustomPlot对象 QCustomPlot plot; plot.setWindowTitle("Dynamic Curve"); // 创建曲线对象 QCPGraph *curve = plot.addGraph(); curve->setPen(QPen(Qt::red)); curve->setLineStyle(QCPGraph::lsLine); // 设置坐标轴范围和标签 plot.xAxis->setLabel("Time"); plot.yAxis->setLabel("Value"); plot.xAxis->setRange(0, 10); plot.yAxis->setRange(-1, 1); // 创建定时器,每100毫秒更新一次曲线 QTimer timer; timer.start(100); QObject::connect(&timer, &QTimer::timeout, [&]() { static double t = 0; static double y = 0; t += 0.1; y = sin(t); curve->addData(t, y); plot.xAxis->setRange(t, 10, Qt::AlignRight); plot.replot(); }); // 显示窗口 plot.show(); return a.exec(); } ``` 在这个示例程序中,我们创建了一个QCustomPlot对象,并添加了一个曲线对象。然后设置了坐标轴的范围和标签。接着创建了一个定时器,用于每100毫秒更新一次曲线。在定时器的回调函数中,我们使用sin函数生成一个随时间变化的y值,并将其添加到曲线对象中。然后调整x轴的范围,使曲线能够动态显示。最后调用plot.replot()函数重新绘制曲线。 运行程序后,您应该可以看到一个动态曲线图,它会不断地更新,显示sin函数在时间轴上的变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值