4、QtCharts 做心电图

news/2025/3/15 18:58:45/

文章目录

  • 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轴进行滚动}

http://www.ppmy.cn/news/1182143.html

相关文章

此页面不能正确地重定向

这种是由于条件判断有误&#xff0c;程序不断的重定向到一个页面&#xff0c;而造成的死循环的情况 下面列举一个常出现的场景之一 1、使用过滤器实现登录验证错误处理 解释&#xff1a;当用户访问login.jsp进行登录的时候&#xff0c;这个时候请求会被Filter捕获&#xff0…

python:使用Scikit-image对遥感影像进行尺度空间特征提取(scale-space)

作者:CSDN @ _养乐多_ 在本博客中,我们将介绍如何使用Scikit-Image来进行尺度空间特征提取,并且提供一个示例代码,演示了如何在单波段遥感图像上应用这些方法。 尺度空间特征提取是一种处理图像的方法,旨在检测不同尺度下的特征和结构。这对于处理遥感图像非常有用,因为…

nginx配置域名(ssl和非ssl形式)

概要 本文以阿里云为例&#xff0c;浅要介绍如何将域名指向你的服务器&#xff0c;以及如何配置ssl和非ssl的方式。 购买域名 购买域名不做描述&#xff0c;本文域名以helloword.com为例 域名实名与备案 购买后&#xff0c;不实名和备案是无法使用的&#xff0c;这里不展开…

【Proteus仿真】【Arduino单片机】直流电机和步进电机

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用蜂鸣器、按键、直流电机、步进电机、ULN2003、L293D等。 主要功能&#xff1a; 系统运行后&#xff0c;K3键启动运行&#xff0c;K1和K2键控制…

windows PC virtualBox 配置

效果&#xff1a; oracle vitualbox 可以访问通PC主机&#xff0c;可以访问外网: 注意&#xff0c;如果docker0网络地址&#xff0c;和PC主机的网络地址冲突了&#xff0c;需要变更docker的网络地址&#xff1a; root/home/mysqlPcap/anti-tamper $ cat /etc/docker/daemon.js…

使用了百度OCR,记录一下

由于识别ocr有的频率不高&#xff0c;图片无保密性需求&#xff0c;也不想太大的库&#xff0c; 就决定还是用下api算了&#xff0c;试用了几家&#xff0c;决定用百度的ocr包&#xff0c;相对简单。 遇到的问题里面下列基本有提到&#xff1a;例如获取ID&#xff0c;KEY&…

数据库MySQL(四):表中字段约束和外键约束

约束 概念&#xff1a;约束是作用于表中字段上的规则&#xff0c;用于限制存储在表中的数据。 目的&#xff1a;保证数据库中数据的正确性、有效性、完整性。 约束分类描述关键字非空约束限制该字段的数据不能为NULLNOT NULL唯一约束保证该字段的所有数据都是唯一的、不重复的…

详细介绍如何使用 NeRF 进行 3D 体积渲染-附源码下载

介绍 在此示例中,我们展示了 Ben Mildenhall 等人的研究论文 NeRF:将场景表示为用于视图合成的神经辐射场的最小实现 。等人。作者提出了一种巧妙的方法,通过神经网络对体积场景函数进行建模来合成场景的新颖视图。 为了帮助您直观地理解这一点,让我们从以下问题开始: 是…