当前位置: 首页 > news >正文

4、QtCharts 做心电图

文章目录

  • ui界面
  • 核心代码
  • 全部代码

请添加图片描述

ui界面

在这里插入图片描述

在这里插入图片描述

核心代码

void Dialog::slot_timer()
{qreal xOffset=0.f;//x的偏移量,推进的距离qreal dIncrease=10;//增加量//数据for(int i=0;i<10;i++){m_x+=dIncrease;xOffset+=dIncrease;m_splineSerise->append(m_x,qrand()%10);//根据实际情况删除多余数据}//删除多余数据if(m_splineSerise->count()>c_MaxSize){m_splineSerise->removePoints(0,m_splineSerise->count()*0.5-c_MaxSize);//删除多余数据}//计算x周每个单位的宽度qreal xUnit =m_chart->plotArea().width()/(m_axisX->max()-m_axisX->min());qreal xScroll =xOffset*xUnit;m_chart->scroll(xScroll,0);//对x轴进行滚动}

全部代码

#include "dialog.h"
#include "ui_dialog.h"const quint32 c_MaxSize=1000;//数据个数Dialog::Dialog(QWidget *parent):QDialog(parent),ui(new Ui::Dialog),m_x(0.f),m_splineSerise(NULL)
{ui->setupUi(this);//构建曲线系列m_splineSerise=new QSplineSeries(this);//为折线图添加初始数据:第一个位置决定了心电图的曲线终点位置m_x=1000;m_splineSerise->append(m_x,1);//构建图标对象m_chart=new QChart();//注意:先添加到图表再创建坐标轴,否则无效//1.将折线系列添加到图表m_chart->addSeries(m_splineSerise);//构建坐标轴m_axisX = new QValueAxis();m_axisX->setRange(0,c_MaxSize);m_axisX->setTitleText(QStringLiteral("X"));//设置标题m_axisX->setLabelFormat("%g");//设置格式m_axisX->setTickCount(5);//设置刻度数m_axisY= new QValueAxis();m_axisY->setRange(-10,10);m_axisY->setTitleText(QStringLiteral("Y"));//将坐标轴绑定m_chart->setAxisX(m_axisX,m_splineSerise);m_chart->setAxisY(m_axisY,m_splineSerise);//隐藏图例m_chart->legend()->hide();//设置图标主题m_chart->setTheme(QtCharts::QChart::ChartThemeBlueCerulean);//设置标题m_chart->setTitle(QString("图表1"));//设置尺寸m_chart->setGeometry(0,0,500,300);//构建场景m_pScene =new QGraphicsScene(this);//为视图构建场景ui->graphicsView->setScene(m_pScene);//将图表添加到场景m_pScene->addItem(m_chart);//设置抗锯齿ui->graphicsView->setRenderHint(QPainter::Antialiasing,true);//构造定时器m_timer=new QTimer(this);m_timer->setInterval(100);//设置定时器间隔//绑定定时器connect(m_timer,&QTimer::timeout,this,&Dialog::slot_timer);m_timer->start();}Dialog::~Dialog()
{m_chart->removeAllSeries();delete ui;
}qreal Dialog::getData(qreal x)
{return qSin(x*2*M_PI)*7;
}void Dialog::slot_timer()
{qreal xOffset=0.f;//x的偏移量,推进的距离qreal dIncrease=10;//增加量//数据for(int i=0;i<10;i++){m_x+=dIncrease;xOffset+=dIncrease;m_splineSerise->append(m_x,qrand()%10);//根据实际情况删除多余数据}//删除多余数据if(m_splineSerise->count()>c_MaxSize){m_splineSerise->removePoints(0,m_splineSerise->count()*0.5-c_MaxSize);//删除多余数据}//计算x周每个单位的宽度qreal xUnit =m_chart->plotArea().width()/(m_axisX->max()-m_axisX->min());qreal xScroll =xOffset*xUnit;m_chart->scroll(xScroll,0);//对x轴进行滚动}

相关文章:

  • Java 入门指南:使用 Docker 创建容器化 Spring Boot 应用程序
  • css样式中 before、after 里面的 content 乱码
  • 修改svc的LoadBalancer的IP引发的惨案
  • C++11的lambda表达式
  • nlp之加载电商评论集
  • 真机环境配置教程
  • 项目进度延误,危机管理5大注意事项
  • 评论功能的选择难题:数据结构如何选定?
  • 什么是React中的有状态组件(stateful component)和无状态组件(stateless component)?
  • [每周一更]-(第69期):特殊及面试的GIT问题解析
  • 计算机网络重点概念整理-第七章 网络安全【期末复习|考研复习】
  • Redis学习笔记3:基于springboot的lettuce redis客户端validateConnection连接有效性检查
  • 2023-10-28 LeetCode每日一题(从数量最多的堆取走礼物)
  • PS 安装教程 2022版(全网最详细图文教程)
  • 自动驾驶之—LaneAF学习相关总结
  • 【笔记】你不知道的JS读书笔记——Promise
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • golang中接口赋值与方法集
  • interface和setter,getter
  • JSDuck 与 AngularJS 融合技巧
  • Laravel Mix运行时关于es2015报错解决方案
  • Laravel核心解读--Facades
  • PHP 小技巧
  • quasar-framework cnodejs社区
  • Vue组件定义
  • 爱情 北京女病人
  • 安装python包到指定虚拟环境
  • 安卓应用性能调试和优化经验分享
  • 构建工具 - 收藏集 - 掘金
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 跳前端坑前,先看看这个!!
  • 我从编程教室毕业
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​第20课 在Android Native开发中加入新的C++类
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • ###C语言程序设计-----C语言学习(3)#
  • (14)Hive调优——合并小文件
  • (20050108)又读《平凡的世界》
  • (C#)获取字符编码的类
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (转)h264中avc和flv数据的解析
  • (转载)PyTorch代码规范最佳实践和样式指南
  • ./configure,make,make install的作用(转)
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .Net 应用中使用dot trace进行性能诊断
  • .NET 指南:抽象化实现的基类
  • .NET中统一的存储过程调用方法(收藏)
  • /3GB和/USERVA开关
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @font-face 用字体画图标
  • @hook扩展分析