动态心电图绘制,通过qt定时器,实现心电图从左往右进行绘制,到达坐标轴最大值后,再从左往右继续进行绘制。
增加:文章地址:https://blog.csdn.net/DoleH/article/details/86250510
增加:文章地址:https://blog.csdn.net/DoleH/article/details/86250510
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1100 2019-01-15 20:54 dynamic_ecg_wave.sln
目录 0 2019-01-15 21:00 dynamic_ecg_wave
文件 8623 2019-01-12 21:19 dynamic_ecg_wavedynamic_ecg_wave.vcxproj
文件 1983 2019-01-12 21:16 dynamic_ecg_wavedynamic_ecg_wave.vcxproj.filters
文件 637 2019-01-15 20:56 dynamic_ecg_wavedynamic_ecg_wave.vcxproj.user
文件 3539 2019-01-15 21:00 dynamic_ecg_wavedynamicECG.cpp
文件 843 2019-01-12 21:16 dynamic_ecg_wavedynamicECG.h
文件 24148 2019-01-12 21:22 dynamic_ecg_wavedynamicECG.pro.user
文件 2292 2019-01-12 21:20 dynamic_ecg_wavedynamicECG.ui
目录 0 2019-01-12 21:16 dynamic_ecg_waveGeneratedFiles
目录 0 2019-01-12 21:16 dynamic_ecg_waveGeneratedFilesDebug
文件 3727 2019-01-12 21:10 dynamic_ecg_waveGeneratedFilesDebugmoc_data_process.cpp
文件 3704 2019-01-12 21:19 dynamic_ecg_waveGeneratedFilesDebugmoc_dynamicECG.cpp
文件 3724 2019-01-12 21:14 dynamic_ecg_waveGeneratedFilesDebugmoc_ShowEcgWave.cpp
文件 1427 2019-01-12 21:06 dynamic_ecg_waveGeneratedFilesqrc_data_process.cpp
文件 1421 2019-01-12 21:19 dynamic_ecg_waveGeneratedFilesqrc_ShowEcgWave.cpp
文件 3536 2019-01-12 21:06 dynamic_ecg_waveGeneratedFilesui_data_process.h
文件 3379 2019-01-12 21:22 dynamic_ecg_waveGeneratedFilesui_dynamicECG.h
文件 3385 2019-01-12 21:15 dynamic_ecg_waveGeneratedFilesui_ShowEcgWave.h
文件 179 2019-01-12 21:17 dynamic_ecg_wavemain.cpp
目录 0 2019-01-11 16:45 dynamic_ecg_waveResources
文件 72 2019-01-11 16:45 dynamic_ecg_waveShowEcgWave.qrc
目录 0 2019-01-12 21:04 dynamic_ecg_wavex64
目录 0 2019-01-15 20:56 dynamic_ecg_wavex64Debug
文件 429 2019-01-12 21:22 dynamic_ecg_wavex64Debugdata_process.log
文件 476255 2019-01-12 21:10 dynamic_ecg_wavex64Debugdata_process.obj
目录 0 2019-01-12 21:17 dynamic_ecg_wavex64Debugdata_process.tlog
文件 23092 2019-01-12 21:16 dynamic_ecg_wavex64Debugdata_process.tlogCL.command.1.tlog
文件 971962 2019-01-12 21:16 dynamic_ecg_wavex64Debugdata_process.tlogCL.read.1.tlog
文件 11950 2019-01-12 21:16 dynamic_ecg_wavex64Debugdata_process.tlogCL.write.1.tlog
文件 223 2019-01-12 21:17 dynamic_ecg_wavex64Debugdata_process.tlogdata_process.lastbuildstate
............此处省略45个文件信息
#include “dynamicECG.h“
#include “ui_dynamicECG.h“
DynamicECG::DynamicECG(QWidget *parent)
: QWidget(parent) ui(new Ui::dynamicECG)
{
ui->setupUi(this);
init();
initEcgWaveLineChart();
}
DynamicECG::~DynamicECG()
{
delete ui;
}
void DynamicECG::init() {
originListIndex = 0;
}
void DynamicECG::oneTimeOutAction() {
if (originListIndex >= originListSize)
{
ecgWaveDrawTimer->stop();
}
else {
qint16 tempInt16 = originList.at(originListIndex).toInt();
//qDebug() << QString(“数据为:%1“).arg(tempInt16);
drawEcgWave(originListIndex tempInt16);
originListIndex++;
}
}
void DynamicECG::onShowPushButtonclick()
{
originList.clear();
QString origin = ui->inputTextEdit->toPlainText();
originList = origin.split(““);
originListSize = originList.count();
qDebug() << QString(“数据大小%1“).arg(originListSize);
ecgWaveDrawTimer = new QTimer(this);//定时任务
connect(ecgWaveDrawTimer SIGNAL(timeout()) this SLOT(oneTimeOutAction()));
ecgWaveDrawTimer->start(8);//5ms执行一次
}
//注意axis_x的输入,如果大于65535,
void DynamicECG::drawEcgWave(int axis_x qint16 data) {
int timesCounts = axis_x / 600;//查看数据是否超过了600
if (timesCounts > 0)//如果第一次界面绘制结束,之后存在了600个点
{
axis_x = axis_x - timesCounts * 600;
ecgPointBuffer[axis_x].setY(data);
}
else//如果是第一次界面
{
ecgPointBuffer.append(QPointF(axis_x data));
}
ecgSeries->replace(ecgPointBuffer);
}
//初始化ECG心电图折线图
void DynamicECG::initEcgWaveLineChart() {
//TODO 其实这里可以用默认的坐标轴
axisY_ECG = new QValueAxis();
axisX_ECG = new QValueAxis();
ecgSeries = new QLineSeries();//TODO 考虑改为平滑曲线
ecgWaveLineChart = new QChart();
//添加曲线到chart中
ecgWaveLineChart->addSeries(ecgSeries);
//设置坐标轴显示范围
axisY_ECG->setRange(-350 1200);
axisX_ECG->setRange(0 600);
axisX_ECG->setTickCount(30);
axisY_ECG->setTickCount(10);
//设置坐标轴的颜色,粗细和设置网格显示
axisX_ECG->setGridLinePen(QPen(Qt::red 1 Qt::DashDotDotLine Qt::SquareCap Qt::RoundJoin)); //网格样式
axisY_ECG->setGridLinePen(QPen(Qt::red 1 Qt::DashDotDotLine Qt::SquareCap Qt::RoundJoin));
axisX_ECG->setLinePen(QPen(Qt::red 1 Qt::DashDotDotLine Qt::SquareCap Qt::RoundJoin));//坐标轴样式
axisY_ECG->setLinePen(QPen(Qt::red 1 Qt::DashDotDotLine Qt::SquareCap Qt::RoundJoin));
axisY_ECG->setGridLineVisible(true);//显示线框
axisX_ECG->setGridLineVisible(true);
axisX_ECG->setLabelsVisible(false);//不显示具体数值
axisY_ECG->setLabelsVisible(false);
//把坐标轴添加到chart中,第二个参数是设置坐标轴的位置,
//只有四个选项,下方:Qt::AlignBottom,左边:Qt::AlignLeft,右边:Qt::AlignRight,上方:Qt::AlignTop
ecgWaveLineChart->addAxis(axisX_ECG Qt::AlignBottom);
ecgWaveLineChart->addAxis(axisY_ECG Qt::AlignLeft);
//把曲线关联到坐标轴
ecgSeries->attachAxis(axisX_ECG);
ecgSeries->attachAxis(axisY_ECG);
ecgSeries->setColor(QColor(Qt::black));//设置线的颜色
ecgSeries->setUseOpenGL(true);//openGL加速
setLineChartMargins(ecgWaveLineChart 2);//设置折线图边距
ecgWaveLineChart->legend()->hide();//不显示注释
ui->ecg
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1100 2019-01-15 20:54 dynamic_ecg_wave.sln
目录 0 2019-01-15 21:00 dynamic_ecg_wave
文件 8623 2019-01-12 21:19 dynamic_ecg_wavedynamic_ecg_wave.vcxproj
文件 1983 2019-01-12 21:16 dynamic_ecg_wavedynamic_ecg_wave.vcxproj.filters
文件 637 2019-01-15 20:56 dynamic_ecg_wavedynamic_ecg_wave.vcxproj.user
文件 3539 2019-01-15 21:00 dynamic_ecg_wavedynamicECG.cpp
文件 843 2019-01-12 21:16 dynamic_ecg_wavedynamicECG.h
文件 24148 2019-01-12 21:22 dynamic_ecg_wavedynamicECG.pro.user
文件 2292 2019-01-12 21:20 dynamic_ecg_wavedynamicECG.ui
目录 0 2019-01-12 21:16 dynamic_ecg_waveGeneratedFiles
目录 0 2019-01-12 21:16 dynamic_ecg_waveGeneratedFilesDebug
文件 3727 2019-01-12 21:10 dynamic_ecg_waveGeneratedFilesDebugmoc_data_process.cpp
文件 3704 2019-01-12 21:19 dynamic_ecg_waveGeneratedFilesDebugmoc_dynamicECG.cpp
文件 3724 2019-01-12 21:14 dynamic_ecg_waveGeneratedFilesDebugmoc_ShowEcgWave.cpp
文件 1427 2019-01-12 21:06 dynamic_ecg_waveGeneratedFilesqrc_data_process.cpp
文件 1421 2019-01-12 21:19 dynamic_ecg_waveGeneratedFilesqrc_ShowEcgWave.cpp
文件 3536 2019-01-12 21:06 dynamic_ecg_waveGeneratedFilesui_data_process.h
文件 3379 2019-01-12 21:22 dynamic_ecg_waveGeneratedFilesui_dynamicECG.h
文件 3385 2019-01-12 21:15 dynamic_ecg_waveGeneratedFilesui_ShowEcgWave.h
文件 179 2019-01-12 21:17 dynamic_ecg_wavemain.cpp
目录 0 2019-01-11 16:45 dynamic_ecg_waveResources
文件 72 2019-01-11 16:45 dynamic_ecg_waveShowEcgWave.qrc
目录 0 2019-01-12 21:04 dynamic_ecg_wavex64
目录 0 2019-01-15 20:56 dynamic_ecg_wavex64Debug
文件 429 2019-01-12 21:22 dynamic_ecg_wavex64Debugdata_process.log
文件 476255 2019-01-12 21:10 dynamic_ecg_wavex64Debugdata_process.obj
目录 0 2019-01-12 21:17 dynamic_ecg_wavex64Debugdata_process.tlog
文件 23092 2019-01-12 21:16 dynamic_ecg_wavex64Debugdata_process.tlogCL.command.1.tlog
文件 971962 2019-01-12 21:16 dynamic_ecg_wavex64Debugdata_process.tlogCL.read.1.tlog
文件 11950 2019-01-12 21:16 dynamic_ecg_wavex64Debugdata_process.tlogCL.write.1.tlog
文件 223 2019-01-12 21:17 dynamic_ecg_wavex64Debugdata_process.tlogdata_process.lastbuildstate
............此处省略45个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)