Qt的串口编程—实现串口的动态曲线功能

学习视频QT-如何绘制动态曲线(教程+源码)_哔哩哔哩_bilibili

视频有源码和教程,我是自己复现了一遍。

(建议每完成一步都运行一下,看看是否报错也方便排查)

ui界面添加绘图框->选择组件GraphcisView ->右键选中  提升为QChartView 

1.

2.

3.

4.

mainwindow.cpp

/*绘制动态曲线*/
void MainWindow::Chart_Init()
{
    chart = new QChart();//初始化QChart
    lineSeries = new QSplineSeries();//初始化QSplineSeries
    lineSeries ->setName("氧气浓度实时曲线");//设置曲线名称
    chart->addSeries(lineSeries);//把曲线添加到初始化QChart的实例chart中
    QValueAxis *axisX = new QValueAxis();
    QValueAxis *axisY = new QValueAxis();//初始化XY的值
    /*设置坐标轴显示范围*/
    axisX->setMin(0);
    axisX->setMax(MAX_X);
    axisY->setMin(0);
    axisY->setMax(MAX_Y);
    /*设置坐标轴上的格点*/
    axisX->setTickCount(10);
    axisY->setTickCount(10);
    /*设置坐标轴显示的名称*/
    QFont font("Microsoft YaHei",8,QFont::Normal);//微软雅黑,字体大小8
    axisX->setTitleFont(font);
    axisY->setTitleFont(font);
    axisX->setTitleText("X-时间t");
    axisY->setTitleText("Y-氧气浓度");
    /*设置网格不显示*/
    axisY->setGridLineVisible(false);
    /*
    下方 Qt::AlignBottom;左方 Qt::AlignLeft;
    上方 Qt::AlignTop;   右方 Qt::AlignRight;
    */
    chart->addAxis(axisX,Qt::AlignBottom);
    chart->addAxis(axisY,Qt::AlignLeft);
    /*把曲线关联到坐标轴*/
    lineSeries->attachAxis(axisX);
    lineSeries->attachAxis(axisY);
    /*把chart显示到窗口上*/
    ui->graphicsView->setChart(chart);
    ui->graphicsView->setRenderHint(QPainter::Antialiasing);//设置渲染:抗锯齿,不设置曲线就显得不平滑
}

void MainWindow::DrawLine()
{
    static int count = 0;
    if(count > MAX_X)
    {
        lineSeries->removePoints(0,lineSeries->count()-MAX_X);//当曲线上最早的点超出X轴的范围时,剔除最早的点
        chart->axisX()->setMin(count-MAX_X);
        chart->axisX()->setMax(count);//更新X轴的范围
    }
    lineSeries->append(count,rand()%65);//随机生成0-65的随机数
    count ++;
}

演示结果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值