diff --git a/src/AnalysisTool.pro b/src/AnalysisTool.pro index 8a260d8..bff4d75 100644 --- a/src/AnalysisTool.pro +++ b/src/AnalysisTool.pro @@ -9,7 +9,7 @@ CONFIG+=precompile_header PRECOMPILED_HEADER=stable.h # -VERSION = 0.9.8 +VERSION = 0.9.8.1 # 设置目标文件名,包含版本号 TARGET = AnalysisTool_$${VERSION} diff --git a/src/data/xlsxhandler.cpp b/src/data/xlsxhandler.cpp index 56608de..95b3eb5 100644 --- a/src/data/xlsxhandler.cpp +++ b/src/data/xlsxhandler.cpp @@ -409,7 +409,7 @@ void XlsxHandler::readAnalysisOperation( for(int i = 0;i < size; i++){ AnaOpRecorderOperation ao; - ao.filePath = cfd.filePath; + ao.filePath = cfd.fileName; QString modeStr = sheet->cellAt(startLineIndex, 1)->value().toString(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 0cfa115..9a1f2b8 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -470,8 +470,10 @@ void MainWindow::on_actionEnthalpyCorrectionSelection_triggered() void MainWindow::on_actionPrintPreview_triggered() { - _printPreviewForm->setPixmap(_centralWidget->getPixMap()); - _printPreviewForm->show(); +// _printPreviewForm->setPixmap(_centralWidget->getPixMap()); +// _printPreviewForm->show(); + + _printPreviewForm->_customPrintPreviewDialog->showMaximized(); } void MainWindow::on_actionOnsetTemperaturePoint_triggered() diff --git a/src/serialport/serialport.cpp b/src/serialport/serialport.cpp index c2e07ea..6b0eb58 100644 --- a/src/serialport/serialport.cpp +++ b/src/serialport/serialport.cpp @@ -167,8 +167,8 @@ void SerialPort::updateStatus(const CommonData &cd) } } -// logde<<"_curveExperimentDataVtr size:" -// <write(out_char, hex_length); @@ -417,7 +417,7 @@ void SerialPort::sendCmd(const SerialPort::E_CMD_TYPE e) } } -void SerialPort::to_hex(char *in_char, int char_length, char *out_char) +void SerialPort::toHex(char *in_char, int char_length, char *out_char) { while (char_length--) { @@ -547,11 +547,18 @@ void SerialPort::slotSendData(const QByteArray &ba) if (_sp != nullptr && _sp->isOpen()) { - _sp->write(ba); + int bytesWritten = _sp->write(ba); + if (bytesWritten == -1) { + logde << "Write failed." << _sp->errorString().toStdString(); + } else if (bytesWritten != ba.size()) { + logde << "Not all data was writen."; + } else { + logde << "All data writen."; + } } else { - qDebug() << "sp not open."; + logde<< "sp not open."; return; } } diff --git a/src/serialport/serialport.h b/src/serialport/serialport.h index 2749258..a9a6347 100644 --- a/src/serialport/serialport.h +++ b/src/serialport/serialport.h @@ -44,12 +44,11 @@ public slots: void slotCloseSp(); private slots: void slotReadData(); - private: void updateStatus(const CommonData &cd); void updateAxis(); void commonDataParser(const int dataLength, const u16 addr, const CommonData &cd); - void to_hex(char *in_char, int char_length, char *out_char); + void toHex(char *in_char, int char_length, char *out_char); void displayPortInfo(); private: SerialPort(QObject *parent = nullptr); diff --git a/src/ui/analysisoperationrecorder.cpp b/src/ui/analysisoperationrecorder.cpp index 8f4fb98..b5105ca 100644 --- a/src/ui/analysisoperationrecorder.cpp +++ b/src/ui/analysisoperationrecorder.cpp @@ -8,7 +8,7 @@ void addAnalysisOperation(const AnalysisOperation ao) } #endif -QVector _ananlysisOperationVtr; +QVector _analysisOperationVtr; void removeTheLastAnalysisOperation() { diff --git a/src/ui/centralwidget.cpp b/src/ui/centralwidget.cpp index dcb0869..741f873 100644 --- a/src/ui/centralwidget.cpp +++ b/src/ui/centralwidget.cpp @@ -310,7 +310,7 @@ void CentralWidget::slotRecvAnalysisFileName(const QString &filePath) // Add analysis operation data. if(cfd.analysisOperationVtr.size() > 0){ for(AnaOpRecorder::AnalysisOperation& ao - :AnalysisOperationRecorder::_analysisOperationVtr){ + :cfd.analysisOperationVtr){ loadAnalysisData(ao.mode,ao.x1,ao.x2); } } @@ -337,167 +337,14 @@ void CentralWidget::slotAnalysisSettingApply() // loadAnalysisData(_analysisMode,x1,x2); - // -#if 0 - switch (_analysisMode) { - case AnalysisMode::NumericalLabel: - { - QPointF selectPoint = PointCalculate::getClosestPointByX(x1); - - // logde<<"lin1 x:"<parent(), "warnning", "曲线选择错误."); - return; - } - - 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: - case AnalysisMode::StopPoint:{ - PointCalculate::setRegionPointX(x1,x2); - - QPair startEndPointPair = - PointCalculate::calculateStartAndEndPoint(); - // - QPointF point; - QString str; - AnaOpRecorder::AnalysisOperation ao; - - if(_analysisMode == AnalysisMode::StartPoint){ - point = startEndPointPair.first; - str = PointCalculate::textFormatStartPoint(point); - ao.mode = AnaOpRecorder::StartPoint; - }else{ - point = startEndPointPair.second; - str = PointCalculate::textFormatEndPoint(point); - ao.mode = AnaOpRecorder::StopPoint; - } - - drawText(point,str); - // + if(Global::_mode == Global::Mode::Analysis){ + AnalysisOperation ao; + ao.mode = _analysisMode; ao.x1 = x1; ao.x2 = x2; - AnaOpRecorder::addAnalysisOperation(ao); - // - break; + AnaOpRecorder::_analysisOperationVtr.push_back(ao); } - case AnalysisMode::PeakSynthesisAnalysis: - { - fillGraph(x1,x2); - - PointCalculate::setRegionPointX(x1,x2); - - //enthalpy - double sampleWeight = 0.0f; - for(Global::CurveFileData& cfd:Global::_curveFileDataVtr){ - for(Global::PhaseTotalInfo& pti:cfd.phaseTotalVtr){ - if(_currentCurve && _currentCurve == pti.curve){ - sampleWeight = cfd.ei.sampleWeight.toDouble(); - } - } - } - // logde<<"sample weight:"< startEndPointPair = - PointCalculate::calculateStartAndEndPoint(); - - logde<<"start,end:"<replot(); } -void CentralWidget::loadAnalysisData(const AnalysisOperation ao) +void CentralWidget::loadAnalysisData(const AnalysisMode mode,const double x1,const double x2) { - if(Global::_mode == Global::Mode::Analysis){ - - } - switch (mode) { case AnalysisMode::NumericalLabel: { @@ -1145,13 +988,6 @@ void CentralWidget::loadAnalysisData(const AnalysisOperation ao) drawText(selectPoint,str); - // - AnaOpRecorder::AnalysisOperation ao; - ao.mode = AnalysisMode::NumericalLabel; - ao.x1 = x1; - - AnaOpRecorder::addAnalysisOperation(ao); - // break; } case AnalysisMode::StartPoint: @@ -1165,22 +1001,16 @@ void CentralWidget::loadAnalysisData(const AnalysisOperation ao) QString str; AnaOpRecorder::AnalysisOperation ao; - if(_analysisMode == AnalysisMode::StartPoint){ + if(mode == AnalysisMode::StartPoint){ point = startEndPointPair.first; str = PointCalculate::textFormatStartPoint(point); - ao.mode = Global::AnalysisMode::StartPoint; }else{ point = startEndPointPair.second; str = PointCalculate::textFormatEndPoint(point); - ao.mode = Global::AnalysisMode::StopPoint; } drawText(point,str); - // - ao.x1 = x1; - ao.x2 = x2; - AnaOpRecorder::addAnalysisOperation(ao); // break; } @@ -1233,13 +1063,7 @@ void CentralWidget::loadAnalysisData(const AnalysisOperation ao) startEndPointPair.second.x()); drawText(peakPoint,str); } - // - AnaOpRecorder::AnalysisOperation ao; - ao.mode = AnalysisMode::PeakSynthesisAnalysis; - ao.x1 = x1; - ao.x2 = x2; - AnaOpRecorder::addAnalysisOperation(ao); // break; } @@ -1247,13 +1071,6 @@ void CentralWidget::loadAnalysisData(const AnalysisOperation ao) { glassTransitionHandle(x1,x2); - // - AnaOpRecorder::AnalysisOperation ao; - ao.mode = AnalysisMode::GlassTransition; - ao.x1 = x1; - ao.x2 = x2; - - AnaOpRecorder::addAnalysisOperation(ao); // break; } @@ -1270,13 +1087,6 @@ void CentralWidget::loadAnalysisData(const AnalysisOperation ao) QString str = QString::number(point.x(),'f',3); drawText(point,str); - // - AnaOpRecorder::AnalysisOperation ao; - ao.mode = AnalysisMode::OnsetTemperaturePoint; - ao.x1 = x1; - ao.x2 = x2; - - AnaOpRecorder::addAnalysisOperation(ao); // break; diff --git a/src/ui/centralwidget.h b/src/ui/centralwidget.h index a9e6c8b..9d0b713 100644 --- a/src/ui/centralwidget.h +++ b/src/ui/centralwidget.h @@ -85,7 +85,7 @@ public slots: protected: void timerEvent(QTimerEvent* event); -// void contextMenuEvent(QContextMenuEvent *event); + // void contextMenuEvent(QContextMenuEvent *event); private: void glassTransitionHandle(const double x1,const double x2); void quadraticFit(const QVector& points, double& a, double& b, double& c); @@ -106,7 +106,7 @@ private: }; void clearData(const ClearDataMode); - void loadAnalysisData(const AnalysisOperationRecorder::AnalysisOperation); + void loadAnalysisData(const AnalysisMode mode,const double x1,const double x2); private: AnalysisOperationRecorder::AnalysisMode _analysisMode; LocalCustomPlot *_customPlot; diff --git a/src/ui/printereditform.cpp b/src/ui/printereditform.cpp index 256bcca..01bda73 100644 --- a/src/ui/printereditform.cpp +++ b/src/ui/printereditform.cpp @@ -4,11 +4,23 @@ PrinterEditForm::PrinterEditForm(QWidget *parent) : QWidget(parent), ui(new Ui::PrinterEditForm) + { ui->setupUi(this); + } PrinterEditForm::~PrinterEditForm() { delete ui; } + + + + + + + + + + diff --git a/src/ui/printereditform.h b/src/ui/printereditform.h index 9e0c4da..08be46f 100644 --- a/src/ui/printereditform.h +++ b/src/ui/printereditform.h @@ -2,6 +2,8 @@ #define PRINTEREDITFORM_H #include +#include +#include namespace Ui { class PrinterEditForm; @@ -17,6 +19,7 @@ public: private: Ui::PrinterEditForm *ui; + }; #endif // PRINTEREDITFORM_H diff --git a/src/ui/printpreviewform.cpp b/src/ui/printpreviewform.cpp index 59bc14e..cf39814 100644 --- a/src/ui/printpreviewform.cpp +++ b/src/ui/printpreviewform.cpp @@ -6,8 +6,21 @@ PrintPreviewForm::PrintPreviewForm(QWidget *parent) : QWidget(parent), ui(new Ui::PrintPreviewForm) + ,_printer(new QPrinter(QPrinter::HighResolution)) + ,_customPrintPreviewDialog(new QPrintPreviewDialog(_printer,this)) { ui->setupUi(this); + + + _printer->setPageSize(QPageSize(QPageSize::A4)); + _printer->setOrientation(QPrinter::Landscape); + + QObject::connect(_customPrintPreviewDialog, &QPrintPreviewDialog::paintRequested, + this,&PrintPreviewForm::slotPaintRequested); + + _customPrintPreviewDialog->setWindowFlags(_customPrintPreviewDialog->windowFlags() + | Qt::WindowMaximizeButtonHint + | Qt::WindowMinimizeButtonHint); } PrintPreviewForm::~PrintPreviewForm() @@ -21,3 +34,67 @@ void PrintPreviewForm::setPixmap(const QPixmap &pixmap) localPixmap.scaled(ui->labelPixmap->size()); ui->labelPixmap->setPixmap(pixmap); } + + +void PrintPreviewForm::slotPaintRequested(QPrinter *printer) +{ + printer->setOrientation(QPrinter::Landscape); + QPainter painter(printer); + + // 绘制第一页(不需要先调用 newPage()) + // painter.drawText(100, 100, "Page 1"); + + QRect pageRect = printer->pageRect(); + qDebug()<<"rect:"< +#include +#include namespace Ui { class PrintPreviewForm; @@ -16,9 +18,13 @@ public: ~PrintPreviewForm(); void setPixmap(const QPixmap &); + + QPrintPreviewDialog* _customPrintPreviewDialog; +private slots: + void slotPaintRequested(QPrinter *printer); private: Ui::PrintPreviewForm *ui; - + QPrinter * _printer; }; #endif // PRINTPREVIEWFORM_H