没有合适的资源?快使用搜索试试~ 我知道了~
首页基于Qt5实现的心率变异与心率减速力分析软件源代码
基于Qt5实现的心率变异与心率减速力分析软件源代码
需积分: 50 28 下载量 55 浏览量
更新于2023-03-03
评论 5
收藏 80KB DOCX 举报
基于qt5实现的心率变异与心率减速力分析软件源代码,本人编程能力有限,代码写的不是很优雅,阅读可能带来困难
资源详情
资源评论
资源推荐
附 录
1)数据库模块
(1)头文件 database.h
#include <QSqlError>
#include <QSqlQuery>
#include <QStringList>
#include <QStandardItemModel>
#include <QString>
#include <QVariantList>
#include <QMouseEvent>
class DataBase
{
public:
DataBase();
//数据库初始化函数
void DataBaseInit();
//数据库查询函数
QString SelectFilePath(QString select,char* sign);
public:
//模型变量
QStandardItemModel* model;
private:
//条目变量
QStandardItem* item;
};
#endif // DATABASE_H
(2)类文件 database.cpp
#include "database.h"
DataBase::DataBase(){}
/* 函数名:DataBaseInit()
* 参 数:无
* 作 用:连接数据库,导入数据
* 建立数据库视图
* */
void DataBase::DataBaseInit()
{
//添加 SQlite 数据库
QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
//设置数据库
db.setDatabaseName("../EcgData.db");
//打开数据库
if(!db.open())//数据库打开失败
{
QMessageBox::warning(this,QString::fromLocal8Bit("错误"),db.lastError().text());
return;
}
QSqlQuery query;
bool sign1=query.exec("create table EcgData("
"FID int primary key not null,"
"FNAME char(100),"
"FPATH char(500),"
"FHEA char(300),"
"FDAT char(300),"
"FATR char(300));");
bool sign2=query.exec("insert into EcgData values"
"(1,'16265','E:/Qt5.11.1/ChengXu/MyProject/ECG-Data/16265/','16265.hea','16265.dat','16265.atr'),"
"(2,'16272','E:/Qt5.11.1/ChengXu/MyProject/ECG-Data/16272/','16272.hea','16272.dat','16272.atr'),"
"(3,'16273','E:/Qt5.11.1/ChengXu/MyProject/ECG-Data/16273/','16273.hea','16273.dat','16273.atr'),"
"(4,'16420','E:/Qt5.11.1/ChengXu/MyProject/ECG-Data/16420/','16420.hea','16420.dat','16420.atr'),"
"(5,'16483','E:/Qt5.11.1/ChengXu/MyProject/ECG-Data/16483/','16483.hea','16483.dat','16483.atr'),"
"(6,'100','E:/Qt5.11.1/ChengXu/MyProject/ECG-Data/100/','100.hea','100.dat','100.atr'),"
"(7,'101','E:/Qt5.11.1/ChengXu/MyProject/ECG-Data/101/','101.hea','101.dat','101.atr'),"
"(8,'102','E:/Qt5.11.1/ChengXu/MyProject/ECG-Data/102/','102.hea','102.dat','102.atr'),"
"(9,'103','E:/Qt5.11.1/ChengXu/MyProject/ECG-Data/103/','103.hea','103.dat','103.atr');");
bool sign3=query.exec("select * from EcgData");
//创建标准模型
model=new QStandardItemModel;
item=new QStandardItem;
item->setText("File");
model->setHorizontalHeaderItem(0,item);
//获取模型的根项(Root Item),根项是不可见的
QStandardItem* parentItem=model->invisibleRootItem();
qDebug()<<sign1<<sign2<<sign3;
while(query.next())
{
//创建标准项 item0,并设置显示文本,图标和工具提示
QStandardItem* itemFname=new QStandardItem;
QStandardItem *itemFhea=new QStandardItem;
QStandardItem *itemFdat=new QStandardItem;
QStandardItem *itemFatr=new QStandardItem;
itemFname->setText(query.value("FNAME").toString());
itemFname->setIcon(QIcon(":/Image/image/list.png"));
itemFname->setToolTip("indexA");
//将创建的标准项作为根项的子项
parentItem->appendRow(itemFname);
//将创建的标准项作为新的父项
parentItem=itemFname;
itemFhea->setText(query.value("FHEA").toString());
itemFhea->setIcon(QIcon(":/Image/image/expert2.png"));
itemFdat->setText(query.value("FDAT").toString());
itemFdat->setIcon(QIcon(":/Image/image/ECG.png"));
itemFatr->setText(query.value("FATR").toString());
itemFatr->setIcon(QIcon(":/Image/image/atr.png"));
itemFname->appendRow(itemFhea);
itemFname->appendRow(itemFdat);
itemFname->appendRow(itemFatr);
//获取模型的根项
parentItem=model->invisibleRootItem();
}
}
/* 函数名:SelectFilePath(QString select,char* sign)
* 参 数:QString select 为用户点击选择的文件名
* char* sign 文件名标记
* 作 用:查询用户选择的文件,返回文件地址
* */
QString DataBase::SelectFilePath(QString select,char* sign)
{
QString name=select.mid(0,select.length()-4);
QSqlQuery query;
if(*sign=='h')
{
query.exec(QString("select FPATH from EcgData where FNAME=%1").arg(name));
while(query.next())
return query.value("FPATH").toString()+name+".hea";
}
else if(*sign=='d')
{
query.exec(QString("select FPATH from EcgData where FNAME=%1").arg(name));
while(query.next())
return query.value("FPATH").toString()+name+".dat";
}
else if(*sign=='a')
{
query.exec(QString("select FPATH from EcgData where FNAME=%1").arg(name));
while(query.next())
return query.value("FPATH").toString()+name+".atr";
}
else
return NULL;
return NULL;
}
2)文件协议模块
(1)头文件函数 openle.h
#ifndef OPENFILE_H
#define OPENFILE_H
#include <stdio.h>
#include <QString>
#include <QWidget>
#include <QVector>
#include <QStringList>
class OpenFile
{
public:
struct HEA
{
HEA() {}
int FileNumber=0;//文件编号
int SignalNumber=0;//信号个数
double SamplingFrquemcy=0;//采样频率
int SignalLength=0;//每一信号长度
QString SamplinTime=NULL;//采样时间
QString FileName1=NULL;//信号 1 技术规划范说明文件名
QString Format1=NULL;//压缩格式
double Gain1=0;//增益
int ADC1=0;//ADC 分辨率
int Baseline1=0;//基线
int FirstValue1=0;//第一采样点初值
int CheckNumber1=0;//校验数
int IO1=0;//输入输出
QString File1=0;//文件 1
QString FileName2=0;//信号 2 技术规划范说明文件名
QString Format2=0;//压缩格式
double Gain2=0;//增益
int ADC2=0;//ADC 分辨率
int Baseline2=0;//基线(ADC 零值)
int FirstValue2=0;//第一采样点初值
int CheckNumber2=0;//校验数
int IO2=0;//输入输出
QString File2=NULL;//文件 2
QString Annotation1=NULL;//注释
};
HEA* hea;
void Hea(int sign,QString str);
//函数定义区
public:
//构造函数
OpenFile();
//析构函数
~OpenFile();
//读取 hea 文件,并将 hea 文件数据转换为采样信息和患者基本信息
void HEAtoString(const char* HeaFilePath);//参数为 hea 文件的路径
//读取 dat 文件,并将 dat 数据转换为幅值
void DATtoSignalAmplitude(const char* DatFilePath);//参数为 dat 文件的路径
//读取 atr 文件,并将 atr 数据转换为幅值
void ATRtoRRInterval(const char *AtrFilePath);//参数为 atr 文件的路径
//打开文件对话框,并返回文件名
QString fileDialog(QWidget* parent);
//判断文件大小函数
int fileSize(FILE* filename);
//打开文件并将文件读入 malloc 内存
bool OpenFileToMalloc(const char* FilePath);
//变量定义区
public:
//定义文件大小
uint file_Size;
//定义每组数据大小
uint data_Size;
//采样信号 1/2 幅值内存存储头指针
double* p_sigal_amplitude_value1;
double* p_sigal_amplitude_value2;
//定义 RR 间期数组,索引值为第几个波峰,存储数值为距离上一个波峰的时间 ms
double* p_RR_Interval=NULL;
QVector<int>R_Wave;
剩余54页未读,继续阅读
并不傻的狍子
- 粉丝: 597
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0