From c6b02514d4e592aaa23728f7da4d6ba41d1fa577 Mon Sep 17 00:00:00 2001 From: yuntang <123@qq.com> Date: Mon, 12 May 2025 17:29:59 +0800 Subject: [PATCH] 2025-05-12T17:29:58 --- src/data/xlsxhandler.cpp | 6 +++ src/data/xlsxhandler.h | 1 + src/ui/analysisoperationrecorder.cpp | 3 ++ src/ui/analysisoperationrecorder.h | 5 +- src/ui/centralwidget.cpp | 81 ++++++++++++++++++++++------ 5 files changed, 77 insertions(+), 19 deletions(-) diff --git a/src/data/xlsxhandler.cpp b/src/data/xlsxhandler.cpp index 6e30dd7..d6b987b 100644 --- a/src/data/xlsxhandler.cpp +++ b/src/data/xlsxhandler.cpp @@ -1,5 +1,6 @@ #include "xlsxhandler.h" #include "logger.h" +#include "analysisoperationrecorder.h" void XlsxHandler::test() { @@ -245,3 +246,8 @@ void XlsxHandler::writeFile(const QString filePath) } + +void XlsxHandler::writeAnalysisOperation(QXlsx::Document xlsx) +{ + +} diff --git a/src/data/xlsxhandler.h b/src/data/xlsxhandler.h index bd9a6e6..371ff60 100644 --- a/src/data/xlsxhandler.h +++ b/src/data/xlsxhandler.h @@ -22,6 +22,7 @@ namespace XlsxHandler { void readPhaseData(QXlsx::Worksheet*,int& startLineIndex,Global::PhaseTotalInfo&); void writeFile(const QString filePath); + void writeAnalysisOperation(QXlsx::Document&); const QString ConUnitMg = "mg"; const QString ConUnitDegreeCentigrade = "℃"; diff --git a/src/ui/analysisoperationrecorder.cpp b/src/ui/analysisoperationrecorder.cpp index b14441d..5962511 100644 --- a/src/ui/analysisoperationrecorder.cpp +++ b/src/ui/analysisoperationrecorder.cpp @@ -12,4 +12,7 @@ void removeTheLastAnalysisOperation() _ananlysisOperationVtr.removeLast(); } } + +QVector _ananlysisOperationVtr; + } diff --git a/src/ui/analysisoperationrecorder.h b/src/ui/analysisoperationrecorder.h index 1f5eed6..8ac27c6 100644 --- a/src/ui/analysisoperationrecorder.h +++ b/src/ui/analysisoperationrecorder.h @@ -14,11 +14,10 @@ enum AnalysisMode{ }; struct AnalysisOperation{ AnalysisMode mode; - QPointF point; - QString str; + double x1,x2; }; -QVector _ananlysisOperationVtr; +extern QVector _ananlysisOperationVtr; void addAnalysisOperation(const AnalysisOperation); void removeTheLastAnalysisOperation(); diff --git a/src/ui/centralwidget.cpp b/src/ui/centralwidget.cpp index c1d9fbc..e443198 100644 --- a/src/ui/centralwidget.cpp +++ b/src/ui/centralwidget.cpp @@ -13,6 +13,8 @@ #include "xlsxhandler.h" #include "itemmanager.h" +namespace AnaOpRecorder = AnalysisOperationRecorder; + CentralWidget::CentralWidget(QWidget *parent) : QWidget(parent) ,_customPlot(new LocalCustomPlot(this)) @@ -321,16 +323,24 @@ void CentralWidget::slotAnalysisSettingApply() { QPointF selectPoint = PointCalculate::getClosestPointByX(x1); -// logde<<"lin1 x:"<parent(), "warnning", "曲线选择错误."); return; } - drawText(selectPoint, - PointCalculate::textFormatNumbericalLabel(selectPoint)); + QString str = PointCalculate::textFormatNumbericalLabel(selectPoint); + drawText(selectPoint,str); + + // + AnaOpRecorder::AnalysisOperation ao; + ao.mode = AnaOpRecorder::NumericalLabel; + ao.x1 = x1; + + AnaOpRecorder::addAnalysisOperation(ao); + // break; } case AnalysisMode::StartPoint: @@ -339,15 +349,28 @@ void CentralWidget::slotAnalysisSettingApply() QPair startEndPointPair = PointCalculate::calculateStartAndEndPoint(); + // + QPointF point; + QString str; + AnaOpRecorder::AnalysisOperation ao; if(_analysisMode == AnalysisMode::StartPoint){ - drawText(startEndPointPair.first, - PointCalculate::textFormatStartPoint(startEndPointPair.first)); + point = startEndPointPair.first; + str = PointCalculate::textFormatStartPoint(point); + ao.mode = AnaOpRecorder::StartPoint; }else{ - drawText(startEndPointPair.second, - PointCalculate::textFormatEndPoint(startEndPointPair.second)); + point = startEndPointPair.second; + str = PointCalculate::textFormatEndPoint(point); + ao.mode = AnaOpRecorder::StopPoint; } + drawText(point,str); + // + ao.x1 = x1; + ao.x2 = x2; + + AnaOpRecorder::addAnalysisOperation(ao); + // break; } case AnalysisMode::PeakSynthesisAnalysis: @@ -379,25 +402,34 @@ void CentralWidget::slotAnalysisSettingApply() logde<<"start,end:"<& x, const QVector& y) {