4、QtCharts 做心电图

news2024/9/23 11:19:57

文章目录

  • 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.coloradmin.cn/o/1143784.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA新建maven项目,使用mybatis操作数据库完整过程

IDEA新建maven项目&#xff0c;使用mybatis操作数据库完整过程 一、IDEA新建maven项目二、配置mybatis三、创建表对应实体类四、创建mapper接口五、使用mybatis操作数据库 前提&#xff1a; 这个教程是在maven项目中使用mybatis进行数据库操作&#xff0c;不是在spring boot项目…

51单片机复位电容计算与分析(附带Proteus电路图)

因为iC x (dU/dt).在上电瞬间&#xff0c;U从0变化到U,所以这一瞬间就是通的&#xff0c;然后这就是一个直流回路&#xff0c;因为电容C直流中是断路的&#xff0c;所以就不通了。 然后来分析一下这个电容的电压到底是能不能达到单片机需要的复位电压。 这是一个线性电容&…

听力检测为什么要在标准化的隔声屏蔽系统中进行?

作者兰明&#xff0c;医学硕士&#xff0c;听力学博士&#xff0c;听觉健康门诊主任 美国国家研究委员会;;行为、认知和感官科学委员会联合出版的听力损失确定社会保障福利的资格一书中关于测试环境的要求如下&#xff1a; 行动建议4-4 测试环境 听力学评估是在受控的声学环境中…

基于springboot实现休闲娱乐代理售票平台系统项目【项目源码+论文说明】

基于springboot实现休闲娱乐代理售票系统演示 摘要 网络的广泛应用给生活带来了十分的便利。所以把休闲娱乐代理售票管理与现在网络相结合&#xff0c;利用java技术建设休闲娱乐代理售票系统&#xff0c;实现休闲娱乐代理售票的信息化。则对于进一步提高休闲娱乐代理售票管理发…

随写 - GPT使用时机

感慨科技的进步&#xff0c;还记得15年的时候初中&#xff0c;需要写一篇什么读后感&#xff0c;东抄西凑一篇500字的语句不通顺的文章交上去&#xff0c;那时候什么文库啥的都不需要会员&#xff0c;直接复制就行了。 现在问一问GPT什么都出来了。 1.EDA设计 由于课程结束&am…

基于springboot实现校园疫情防控系统项目【项目源码+论文说明】

基于springboot实现校园疫情防控系统演示 摘要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&am…

2023-10-28 LeetCode每日一题(从数量最多的堆取走礼物)

2023-10-28每日一题 一、题目编号 2558. 从数量最多的堆取走礼物二、题目链接 点击跳转到题目位置 三、题目描述 给你一个整数数组 gifts &#xff0c;表示各堆礼物的数量。每一秒&#xff0c;你需要执行以下操作&#xff1a; 选择礼物数量最多的那一堆。如果不止一堆都符…

Java练习题2022-3

从键盘上输入一个数值字符串&#xff08;表示非负整数&#xff0c;所以该字符串不带正负号和小数点&#xff09;&#xff0c;输出这个字符串中的数字字符重新组合的最小数。例如“654321”输出的为“123456”&#xff1b;“001254”输出为“100245”&#xff1b;“00000”输出为…

Python学习笔记--类的定义和调用

二、类的定义和调用 1、怎么理解类&#xff1f; 类是什么&#xff1f; 个人认为理解类&#xff0c;最简单的方式就是&#xff1a;类是一个变量和函数的集合。 可以看下下面的这张图。 这张图很好的诠释了类&#xff0c;就是把变量和函数包装在一起。 当然我们包装也不是毫…

SpringSecurity详解,实现自定义登录接口

目录 1 SpringSecurity概述1.1 权限框架1.1.1 Apache Shiro1.1.2 SpringSecurity 1.2 授权和认证1.3 SpringSecurity的功能 2 认证原理及流程2.1 项目引入SpringSecurity2.2 认证流程详解 3 自定义登录接口3.1 理论讲解3.2 代码实战3.3 接口测试 1 SpringSecurity概述 1.1 权限…

【计算机视觉】相机

文章目录 一、原始的相机&#xff1a;针孔相机&#xff08;Pinhole Camera&#xff09;二、针孔相机的数学模型三、真实相机四、透镜的缺陷 我的《计算机视觉》系列参考UC Berkeley的CS180课程&#xff0c;PPT可以在课程主页看到。 成像原理 一、原始的相机&#xff1a;针孔相机…

C++11的std::function和bind绑定器

可调用对象 在C中&#xff0c;存在“可调用对象”这么一个概念。准确来说&#xff0c;可调用对象有如下几种定义&#xff1a; 1、是一个函数指针 2、是一个具有operator()成员函数的类对象&#xff08;仿函数&#xff09; 3、是一个可转换为函数指针的类对象 4、是一个类成员&a…

基于SSM和VUE的留守儿童信息管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

数据链路层和DNS之间的那些事~

数据链路层&#xff0c;考虑的是两个节点之间的传输。这里面的典型协议也很多&#xff0c;最知名的就是“以太网”。我们本篇主要介绍的就是以太网协议。这个协议规定了数据链路层&#xff0c;也规定了物理层的内容。 目录 以太网帧格式 帧头 载荷 帧尾 DNS 从输入URL到…

中软国际:战略携手三大伙伴,三线出击收割AI红利

【科技明说 &#xff5c; 重磅专题】 2023年&#xff0c;当我看到中软国际成立AIGC研究院的消息后&#xff0c;认为基于解放号平台全面能力&#xff0c;去推进政企数智化服务&#xff0c;在很大程度上还是需要生态伙伴的技术力量。 为什么呢&#xff1f;这里简单说一下中软国际…

【Bug—eNSP】华为eNsp路由器设备启动一直是0解决方案!

问题描述 在上机实验时&#xff0c;打开ensp软件&#xff0c;添加AR设备时启动异常&#xff0c;最开始错误代码是40&#xff0c;最后通过重新安装&#xff0c;又出现了新的问题&#xff0c;启动AR设备一直是0&#xff0c;而且界面卡住。 解决方法 打开VirtualBox&#xff0c;将…

LeetCode刷题:88. 合并两个有序数组

文章目录 写在前面⭐️88. 合并两个有序数组⭐️&#x1f510;题目描述&#x1f4a1;解题思路&#x1f511;代码 写在前面 本题的题解代码是用C语言编写的。 &#x1f4d2;博客主页&#xff1a;2023Fighting的博客主页 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收…

C#开发DLL,CAPL调用(CAPL>> .NET DLL)

文章目录 展示说明新建类库工程C# 代码生成dllCAPL脚本调用dll,输出结果展示 ret为dll里函数返回的值。 说明 新建类库工程 在visual studio中建立。 C# 代码 using

ruoyi中xxl-job配置使用

xxl-job配置使用目录 前言必须了解的概念1、调度中心2、执行器 环境搭建一、xxl-job环境搭建测试1、下载xxl-job源码2、执行SQL文件&#xff0c;生成对应表结构3、修改xxl-job-admin服务的 application.properties数据库地址可直接启动至此调度中心服务配置&#xff0c;启动完成…

软通动力:打造AI第二增长曲线,图谋新发展

【科技明说 &#xff5c; 重磅专题】 软通动力对于AI的想法还是比较久了&#xff0c;之前在与业内朋友聊到软通动力之时&#xff0c;曾提到软通动力的根基还是在于其多年来的软件服务能力&#xff0c;目前借助AI技术创新的机遇将软件服务能力进一步放大&#xff0c;扩展到更多行…