2025-10-24T17:06:35

This commit is contained in:
yuntang 2025-10-24 17:06:37 +08:00
parent 5989b9686a
commit 97a06a34ab
16 changed files with 269 additions and 143 deletions

View File

@ -0,0 +1,69 @@
[2025-10-23 08:54:20,276] main...
[2025-10-23 08:54:20,278] config file existed.
[2025-10-23 08:54:20,292] version:1.3.5.1
[2025-10-23 08:54:20,299] setEventHandlerEnable...0
[2025-10-23 08:54:23,884] slotRecvAnalysisFileName, filePath:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/sample_data/24-new.xlsx
[2025-10-23 08:54:23,907] xlsx sample weight:1
[2025-10-23 08:54:23,908] Cell does not exist.
[2025-10-23 08:54:24,670] slotRecvAnalysisFileName, filePath:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/sample_data/氧化诱导期11111.xlsx
[2025-10-23 08:54:24,690] xlsx sample weight:1
[2025-10-23 08:54:24,691] Cell does not exist.
[2025-10-23 08:54:25,186] slotRecvAnalysisFileName, filePath:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/sample_data/333new.xlsx
[2025-10-23 08:54:25,189] xlsx sample weight:
[2025-10-23 08:54:25,189] Cell does not exist.
[2025-10-23 08:54:25,804] slotRecvAnalysisFileName, filePath:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/sample_data/23-1new.xlsx
[2025-10-23 08:54:25,806] xlsx sample weight:
[2025-10-23 08:54:25,806] Cell does not exist.
[2025-10-23 08:54:26,311] slotRecvAnalysisFileName, filePath:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/sample_data/22new.xlsx
[2025-10-23 08:54:26,314] xlsx sample weight:
[2025-10-23 08:54:26,314] Cell does not exist.
[2025-10-23 08:54:26,850] slotRecvAnalysisFileName, filePath:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/sample_data/1111new.xlsx
[2025-10-23 08:54:26,853] xlsx sample weight:
[2025-10-23 08:54:26,853] Cell does not exist.
[2025-10-23 08:54:27,385] slotRecvAnalysisFileName, filePath:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/sample_data/new.xlsx
[2025-10-23 08:54:27,390] xlsx sample weight:1
[2025-10-23 08:54:27,390] Cell does not exist.
[2025-10-23 08:54:27,907] slotRecvAnalysisFileName, filePath:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/sample_data/氮气氧气Oit2.xlsx
[2025-10-23 08:54:27,941] xlsx sample weight:26.89
[2025-10-23 08:54:27,943] Cell does not exist.
[2025-10-23 08:54:30,297] slotRecvAnalysisFileName, filePath:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/analysis_state/new.xlsx
[2025-10-23 08:54:30,365] xlsx sample weight:26.89
[2025-10-23 08:54:30,369] ana op size:1
[2025-10-23 08:54:30,369] cfd filePath:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/analysis_state/new.xlsx
[2025-10-23 08:54:30,369] ao mode:OIT
[2025-10-23 08:54:30,371] x1:33.1687,x2:91.1893
[2025-10-23 08:54:30,382] calculateAnalysisResult...
[2025-10-23 08:54:30,382] x1,x2:33.1687,91.1893
[2025-10-23 08:54:30,382] oit x1,x2:33.1687,91.1893
[2025-10-23 08:54:30,382] startEd phase index:1
[2025-10-23 08:54:30,382] edSelectTimeX2 phase index:2
[2025-10-23 08:54:30,382] start runtime:2.74252
[2025-10-23 08:54:30,382] end runtime:63.0387
[2025-10-23 08:54:30,382] step:1
[2025-10-23 08:54:30,382] start/end offset:0.1,0.2
[2025-10-23 08:54:30,838] slotRecvAnalysisFileName, filePath:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/analysis_state/sample.xlsx
[2025-10-23 08:54:30,850] xlsx sample weight:17.2800006866455
[2025-10-23 08:54:30,850] Cell does not exist.
[2025-10-23 08:54:30,856] calculateAnalysisResult...
[2025-10-23 08:54:30,856] x1,x2:33.1687,91.1893
[2025-10-23 08:54:30,856] oit x1,x2:33.1687,91.1893
[2025-10-23 08:54:30,856] startEd phase index:1
[2025-10-23 08:54:30,856] edSelectTimeX2 phase index:2
[2025-10-23 08:54:30,856] start runtime:2.74252
[2025-10-23 08:54:30,856] end runtime:63.0387
[2025-10-23 08:54:30,856] step:2
[2025-10-23 08:54:30,856] start/end offset:0.2,0.4
[2025-10-23 08:54:31,454] slotRecvAnalysisFileName, filePath:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/analysis_state/标样.xlsx
[2025-10-23 08:54:31,475] xlsx sample weight:13.9200000762939
[2025-10-23 08:54:31,475] Cell does not exist.
[2025-10-23 08:54:31,483] calculateAnalysisResult...
[2025-10-23 08:54:31,483] x1,x2:33.1687,91.1893
[2025-10-23 08:54:31,483] oit x1,x2:33.1687,91.1893
[2025-10-23 08:54:31,483] startEd phase index:1
[2025-10-23 08:54:31,483] edSelectTimeX2 phase index:2
[2025-10-23 08:54:31,483] start runtime:2.74252
[2025-10-23 08:54:31,483] end runtime:63.0387
[2025-10-23 08:54:31,483] step:2
[2025-10-23 08:54:31,483] start/end offset:0.2,0.4
[2025-10-23 08:54:33,770] selected Curve:D:/gitfile/analysis_tool/DSCAnalysisTool-release/bin/../experiment_data/analysis_state/标样.xlsx
[2025-10-23 08:54:39,130] serialport destructor.

View File

@ -1,3 +1,7 @@
V1.3.7.0
1、
V1.3.6.0
1、隐藏了左侧【基线】文件夹。

Binary file not shown.

View File

@ -9,7 +9,7 @@ CONFIG+=precompile_header
PRECOMPILED_HEADER=stable.h
#
VERSION = 1.3.6
VERSION = 1.3.7
# 设置目标文件名,包含版本号
TARGET = DSCAnalysisTool_$${VERSION}

View File

@ -1,5 +1,6 @@
#include <qmessagebox.h>
#include "logger/logger.h"
#include "lowesssmoother.h"
#include "mainwindow.h"
#include "ui_mainwindow.h"
@ -33,6 +34,8 @@ MainWindow::MainWindow(QWidget *parent)
_manuallyStopTheExperimentFlag(false) {
ui->setupUi(this);
ui->actionOITAutoAnalysisMode->setVisible(false);
ui->toolBar->setWindowTitle("工具栏");
this->setToolTip(".....");
ui->actionSaveas->setVisible(false);
@ -43,10 +46,10 @@ MainWindow::MainWindow(QWidget *parent)
addDockWidget(Qt::LeftDockWidgetArea, _leftWidget);
addDockWidget(Qt::RightDockWidgetArea, _rightWidget);
_rightWidget->setWindowTitle("分析设置");
_rightWidget->setWidget(_analysisSettingWidget);
_rightWidget->hide();
//
ui->statusbar->showMessage("showMessage show temp message!");
@ -686,10 +689,19 @@ void MainWindow::on_actionEnthalpyCorrectionSelection_triggered() {
}
void MainWindow::on_actionPrintPreview_triggered() {
// _printPreviewForm->show();
logde << "print preview...";
if(Global::_curveFileDataVtr.empty()){
showMesgBox("请先打开数据。");
return;
}
_printPreviewForm->setPixmap(_centralWidget->getPixMap());
_printPreviewForm->_customPrintPreviewDialog->showMaximized();
// _printPreviewForm->_customPrintPreviewDialog->showMaximized();
// _printPreviewForm->setOrientation();
_printPreviewForm->_customPrintPreviewDialog->exec();
_printPreviewForm->_customPrintPreviewDialog->update(); // 可选,强制刷新
}
void MainWindow::on_actionOnsetTemperaturePoint_triggered() {

View File

@ -6,74 +6,79 @@
#include "filemanager.h"
#include "global.h"
LeftWidget::LeftWidget(QWidget *parent ):
QDockWidget(parent)
{
// setStyleSheet("background-color: yellow;");
LeftWidget::LeftWidget(QWidget *parent) : QDockWidget(parent) {
setWindowTitle("文件浏览");
_treeWidget = new QTreeWidget();
_treeWidget->setHeaderHidden(true);
_sampleDataItem = new QTreeWidgetItem(_treeWidget);
_sampleDataItem->setText(0,"样品数据");
_sampleDataItem->setText(0, "样品数据");
#if 0
_baseLineItem = new QTreeWidgetItem(_treeWidget);
_baseLineItem->setText(0,"基线");
#endif
_analysisStateItem = new QTreeWidgetItem(_treeWidget);
_analysisStateItem->setText(0,"分析状态");
_analysisStateItem->setText(0, "分析状态");
_treeWidget->setSortingEnabled(false);
_treeWidget->insertTopLevelItem(0, _sampleDataItem);
// _treeWidget->insertTopLevelItem(1, _baseLineItem);
// _treeWidget->insertTopLevelItem(1, _baseLineItem);
_treeWidget->insertTopLevelItem(2, _analysisStateItem);
setWidget(_treeWidget);
//init file name.
initFileName(_sampleDataItem,Global::SampleDataFloder);
// init file name.
initFileName(_sampleDataItem, Global::SampleDataFloder);
#if 0
initFileName(_baseLineItem,Global::BaseLineFolder);
#endif
initFileName(_analysisStateItem,Global::AnalysisStateFolder);
initFileName(_analysisStateItem, Global::AnalysisStateFolder);
expandAll(_sampleDataItem);
// expandAll(_baseLineItem);
// expandAll(_baseLineItem);
expandAll(_analysisStateItem);
Global::updateFileList();
//connections
connect(_treeWidget,&QTreeWidget::itemDoubleClicked,
this,&LeftWidget::slotTreeWidgetItemClicked);
// connections
connect(_treeWidget, &QTreeWidget::itemDoubleClicked,
this, &LeftWidget::slotTreeWidgetItemClicked);
// 右键菜单
_contextMenu = new QMenu(_treeWidget);
_deleteAction = new QAction("删除", this);
_contextMenu->addAction(_deleteAction);
_treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
connect(_treeWidget, &QTreeWidget::customContextMenuRequested,
this, &LeftWidget::slotShowContextMenu);
}
void LeftWidget::reloadFileName()
{
void LeftWidget::reloadFileName() {
clearAllChildItems(_sampleDataItem);
clearAllChildItems(_baseLineItem);
// clearAllChildItems(_baseLineItem);
clearAllChildItems(_analysisStateItem);
initFileName(_sampleDataItem,Global::SampleDataFloder);
initFileName(_sampleDataItem, Global::SampleDataFloder);
#if 0
initFileName(_baseLineItem,Global::BaseLineFolder);
#endif
initFileName(_analysisStateItem,Global::AnalysisStateFolder);
initFileName(_analysisStateItem, Global::AnalysisStateFolder);
// 更新文件列表
Global::updateFileList();
}
QString LeftWidget::filePathCheck(const QString fileName,const QString folderPath)
{
QString LeftWidget::filePathCheck(const QString fileName, const QString folderPath) {
QString resultFileName = fileName;
QDir dir(folderPath);
QStringList files = dir.entryList(QDir::Files);
for(const QString &existedFileName:files){
for (const QString &existedFileName : files) {
QFileInfo fileInfo(existedFileName);
if(fileName == fileInfo.baseName()){
if (fileName == fileInfo.baseName()) {
QDateTime currentDateTime = QDateTime::currentDateTime();
QString formattedTime = currentDateTime.toString("yyyy_MM_dd_HH_mm_ss");
@ -85,8 +90,7 @@ QString LeftWidget::filePathCheck(const QString fileName,const QString folderPat
return resultFileName;
}
void LeftWidget::initData()
{
void LeftWidget::initData() {
// const QString folderPath = QDir::currentPath()+"/../experiment_data";
const QString folderPath = Global::SampleDataFloder;
#if 1
@ -98,7 +102,7 @@ void LeftWidget::initData()
// 遍历文件
QFileInfoList fileList = dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot);
for (const QFileInfo& fileInfo : fileList) {
for (const QFileInfo &fileInfo : fileList) {
QFile file(fileInfo.absoluteFilePath());
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QString content = file.readAll();
@ -118,10 +122,10 @@ void LeftWidget::initData()
}
#endif
}
void LeftWidget::slotTreeWidgetItemClicked(QTreeWidgetItem *item, int column){
qDebug()<<"item clicked:"<<item->text(0)<<column;
void LeftWidget::slotTreeWidgetItemClicked(QTreeWidgetItem *item, int column) {
qDebug() << "item clicked:" << item->text(0) << column;
if(Global::Mode::Analysis != Global::_mode){
if (Global::Mode::Analysis != Global::_mode) {
return;
}
@ -130,14 +134,14 @@ void LeftWidget::slotTreeWidgetItemClicked(QTreeWidgetItem *item, int column){
QTreeWidgetItem *parentItem = item->parent();
if (parentItem) {
qDebug() << "parent item text:" << parentItem->text(0);
if(parentItem == _sampleDataItem){
fileName =Global::SampleDataFloder + "/" + item->text(0);
if (parentItem == _sampleDataItem) {
fileName = Global::SampleDataFloder + "/" + item->text(0);
#if 0
}else if(parentItem == _baseLineItem){
fileName =Global::BaseLineFolder + "/" +item->text(0);
#endif
}else if(parentItem == _analysisStateItem){
fileName =Global::AnalysisStateFolder + "/" +item->text(0);
} else if (parentItem == _analysisStateItem) {
fileName = Global::AnalysisStateFolder + "/" + item->text(0);
}
} else {
qDebug() << "item has no parent (it is a top-level item)";
@ -146,30 +150,28 @@ void LeftWidget::slotTreeWidgetItemClicked(QTreeWidgetItem *item, int column){
emit sigSendAnalysisFileName(fileName);
}
void LeftWidget::initFileName(QTreeWidgetItem* parentItem,const QString &folderPath)
{
void LeftWidget::initFileName(QTreeWidgetItem *parentItem, const QString &folderPath) {
QDir dir(folderPath);
QStringList files = dir.entryList(QDir::Files);
for(const QString &fileName:files){
for (const QString &fileName : files) {
QTreeWidgetItem *subItem = new QTreeWidgetItem();
subItem->setText(0,fileName);
// _sampleDataItem->addChild(new QTreeWidgetItem(0,fileName));
subItem->setText(0, fileName);
subItem->setData(0, Qt::UserRole, QVariant::fromValue(folderPath + "/" + fileName));
parentItem->addChild(subItem);
}
}
void LeftWidget::expandAll(QTreeWidgetItem* item) {
void LeftWidget::expandAll(QTreeWidgetItem *item) {
item->setExpanded(true);
for (int i = 0; i < item->childCount(); ++i) {
expandAll(item->child(i));
}
}
void LeftWidget::clearAllChildItems(QTreeWidgetItem *parentItem)
{
void LeftWidget::clearAllChildItems(QTreeWidgetItem *parentItem) {
int childCount = parentItem->childCount();
for (int i = 0; i < childCount; ++i) {
QTreeWidgetItem* childItem = parentItem->takeChild(0);
QTreeWidgetItem *childItem = parentItem->takeChild(0);
delete childItem;
}
}
@ -213,4 +215,26 @@ void LeftWidget::recursiveFolderOperation(const QString& folderPath) {
}
#endif
void LeftWidget::slotShowContextMenu(const QPoint &pos) {
QPoint globalPos = _treeWidget->mapToGlobal(pos);
_contextMenu->exec(globalPos);
// 获取当前选中的项
QTreeWidgetItem *currentItem = _treeWidget->itemAt(pos);
if (currentItem == nullptr) {
return;
}
QString filePath = currentItem->data(0, Qt::UserRole).toString();
if (filePath.isEmpty()) {
return;
}
// qDebug() << "file:" << filePath;
if (QFile::remove(filePath)) {
qDebug() << "文件删除成功:" << filePath;
} else {
qWarning() << "文件删除失败:" << filePath;
}
reloadFileName();
}

View File

@ -3,8 +3,11 @@
#include <QWidget>
#include <QDockWidget>
#include <qmenu.h>
#include <qtreewidget.h>
#include <QTreeWidgetItem>
#include <QMenu>
#include <QAction>
#include "global.h"
@ -24,8 +27,10 @@ private:
void initFileName(QTreeWidgetItem*,const QString &folderPath);
void expandAll(QTreeWidgetItem* item);
void clearAllChildItems(QTreeWidgetItem* parentItem);
void removeFile(const QString& filePath);
private slots:
void slotTreeWidgetItemClicked(QTreeWidgetItem *item, int column);
void slotShowContextMenu(const QPoint &pos);
private:
QTreeWidget *_treeWidget;
@ -33,7 +38,8 @@ private:
*_baseLineItem,
*_sampleDataItem;
QMenu *_contextMenu;
QAction *_deleteAction;
};
#endif // LEFTWIDGET_H

View File

@ -6,46 +6,71 @@
#include "global.h"
#include "logger.h"
PrintPreviewForm::PrintPreviewForm(QWidget *parent) :
QWidget(parent),
ui(new Ui::PrintPreviewForm)
,_printer(new QPrinter(QPrinter::HighResolution))
// ,_customPrintPreviewDialog(new QPrintPreviewDialog(_printer,this))
{
PrintPreviewForm::PrintPreviewForm(QWidget *parent) : QWidget(parent),
ui(new Ui::PrintPreviewForm),
_printer(new QPrinter(QPrinter::HighResolution)) {
ui->setupUi(this);
_printer->setPageSize(QPageSize(QPageSize::A4));
_printer->setOrientation(QPrinter::Landscape);
// _printer->setOutputFormat(QPrinter::NativeFormat); // 关键
_customPrintPreviewDialog = new QPrintPreviewDialog(_printer,this);
QObject::connect(_customPrintPreviewDialog, &QPrintPreviewDialog::paintRequested,
this,&PrintPreviewForm::slotPaintRequested);
_customPrintPreviewDialog = new QPrintPreviewDialog(_printer, this);
_customPrintPreviewDialog->setWindowFlags(_customPrintPreviewDialog->windowFlags()
| Qt::WindowMaximizeButtonHint
| Qt::WindowMinimizeButtonHint);
// _painter = new QPainter(_printer);
QObject::connect(_customPrintPreviewDialog,
&QPrintPreviewDialog::paintRequested,
this,
&PrintPreviewForm::slotPaintRequested);
}
PrintPreviewForm::~PrintPreviewForm()
{
PrintPreviewForm::~PrintPreviewForm() {
delete ui;
}
void PrintPreviewForm::setPixmap(const QPixmap &pixmap)
{
#if 0
QPixmap localPixmap = pixmap;
localPixmap.scaled(ui->labelPixmap->size());
ui->labelPixmap->setPixmap(pixmap);
#endif
void PrintPreviewForm::setPixmap(const QPixmap &pixmap) {
logde << "setPixmap...";
_pixmap = pixmap;
if (!_customPrintPreviewDialog)
return;
if (auto pv = _customPrintPreviewDialog->findChild<QPrintPreviewWidget *>()) {
pv->updatePreview(); // 触发 paintRequested
} else {
_customPrintPreviewDialog->update(); // 退化处理
}
// repaint();
#if 0
if (_customPrintPreviewDialog) {
_customPrintPreviewDialog->repaint(); // 强制刷新
_customPrintPreviewDialog->update(); // 刷新预览窗口
_printer->setOrientation(
_printer->orientation() == QPrinter::Landscape
? QPrinter::Portrait
: QPrinter::Landscape);
_printer->setOrientation(QPrinter::Landscape);
_customPrintPreviewDialog->repaint(); // 强制刷新
_customPrintPreviewDialog->update(); // 刷新预览窗口
// _customPrintPreviewDialog->updatePreview(); // 刷新预览
}
#endif
// slotPaintRequested(_printer);
}
void PrintPreviewForm::slotPaintRequested(QPrinter *printer) {
logde << "slotPaintRequested...";
void PrintPreviewForm::slotPaintRequested(QPrinter *printer)
{
const int ConTextHeight = 100;
printer->setOrientation(QPrinter::Landscape);
@ -60,21 +85,16 @@ void PrintPreviewForm::slotPaintRequested(QPrinter *printer)
#endif
// 绘制第一页(不需要先调用 newPage()
// painter.drawText(100, 100, "Page 1");
// 获取页面矩形区域
QRect pageRect = printer->pageRect();
qDebug()<<"rect:"<<pageRect;
#if 1
// 绘制矩形框
// 绘制主框
QRect frameRect(50, 50, pageRect.width() - 100, pageRect.height() - 100);
QPen pen(Qt::black, 1); // 设置笔的宽度和颜色
painter.setPen(pen);
painter.drawRect(frameRect);
#endif
// Draw image.
// 绘制图像区域
QRect imageRect = frameRect;
imageRect.setHeight(imageRect.height() - ConTextHeight * 7);
@ -82,11 +102,11 @@ void PrintPreviewForm::slotPaintRequested(QPrinter *printer)
QPixmap resizedPixmap =
_pixmap.scaled(imageRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
painter.drawPixmap(imageRect, resizedPixmap);
}else{
logde<<"piamap is null.";
} else {
logde << "pixmap is null.";
return;
}
// file info
// 绘制文件信息区域
QRect fileInfoRect(frameRect.x(),
frameRect.y() + imageRect.height(),
frameRect.width(),
@ -96,16 +116,11 @@ void PrintPreviewForm::slotPaintRequested(QPrinter *printer)
QString fileName = Global::getFileName(Global::_curveFileDataVtr.first().filePath);
QString fileInfoStr = QString(" 设备:差式扫描量热仪 文件名:") + fileName;
painter.drawText(fileInfoRect, Qt::AlignLeft|Qt::AlignVCenter, fileInfoStr);
painter.drawText(fileInfoRect,
Qt::AlignLeft | Qt::AlignVCenter,
fileInfoStr);
// Experiment info.
// Only print the first experiment data.
#if 0
QRect experimentRect(frameRect.x(),
fileInfoRect.y() + fileInfoRect.height(),
1000,
frameRect.height() - imageRect.height() - fileInfoRect.height());
#endif
// 绘制实验信息区域
QRect experimentRect(frameRect.x(),
fileInfoRect.y() + fileInfoRect.height(),
2000,
@ -114,50 +129,47 @@ void PrintPreviewForm::slotPaintRequested(QPrinter *printer)
painter.drawRect(experimentRect);
Global::ExperimentInfo exInfo = Global::_curveFileDataVtr.first().ei;
if(Global::_curveFileDataVtr.empty()){
if (Global::_curveFileDataVtr.empty()) {
exInfo = Global::_experimentInfo;
}
QString experimentInfoStr = QString(" 样品名称:%1 \n"
" 样品重量:%2 mg\n"
" 实验日期:%3 \n"
" 实验人员:%4 \n"
)
" 实验人员:%4 \n")
.arg(exInfo.sampleName)
.arg(exInfo.sampleWeight)
.arg(exInfo.date)
.arg(exInfo.experimentor);
painter.drawText(experimentRect, Qt::AlignLeft|Qt::AlignTop, experimentInfoStr);
painter.drawText(experimentRect, Qt::AlignLeft | Qt::AlignTop, experimentInfoStr);
// Phase info.
QRect phaseInfoRect(experimentRect.x() + experimentRect.width()
,experimentRect.y(),
// 绘制阶段信息
QRect phaseInfoRect(experimentRect.x() + experimentRect.width(), experimentRect.y(),
frameRect.width() - experimentRect.width(),
experimentRect.height());
QVector<Global::PhaseTotalInfo>& phaseTotalVtr
= Global::_curveFileDataVtr.first().phaseTotalVtr;
QVector<Global::PhaseTotalInfo> &phaseTotalVtr = Global::_curveFileDataVtr.first().phaseTotalVtr;
logde<<"phaseTotalVtr size:"<<phaseTotalVtr.size();
logde << "phaseTotalVtr size:" << phaseTotalVtr.size();
QMap<int,Phase> phaseMap;
QMap<int, Phase> phaseMap;
for(Global::PhaseTotalInfo& ptInfo:phaseTotalVtr){
phaseMap.insert(ptInfo.phaseIndex,ptInfo.phase);
logde<<"cutoff temp:"<<ptInfo.phase.cutoff_temp;
for (Global::PhaseTotalInfo &ptInfo : phaseTotalVtr) {
phaseMap.insert(ptInfo.phaseIndex, ptInfo.phase);
logde << "cutoff temp:" << ptInfo.phase.cutoff_temp;
}
QString phaseInfoStr;
for (auto it = phaseMap.constBegin(); it != phaseMap.constEnd(); ++it) {
logde << "Key:" << it.key() << ", Onoff:" << it.value().onoff;
if(!it.value().onoff){
if (!it.value().onoff) {
break;
}
QString gasName;
switch(it.value().gas){
switch (it.value().gas) {
case GasType::NC:
gasName = "NC";
break;
@ -167,21 +179,20 @@ void PrintPreviewForm::slotPaintRequested(QPrinter *printer)
case GasType::O2:
gasName = "O2";
break;
default:break;
default:
break;
}
phaseInfoStr.append(QString("阶段:%1 截止温度:%2 扫描速率:%3 恒温时间:%4 气氛:%5 \n")
.arg(QString::number(it.key()))
.arg(QString::number(it.value().cutoff_temp,'f',3))
.arg(QString::number(it.value().temp_flow,'f',3))
.arg(QString::number(it.value().constant_temp_time_min,'f',3))
.arg(gasName)
);
.arg(QString::number(it.value().cutoff_temp, 'f', 3))
.arg(QString::number(it.value().temp_flow, 'f', 3))
.arg(QString::number(it.value().constant_temp_time_min, 'f', 3))
.arg(gasName));
}
painter.drawText(phaseInfoRect, Qt::AlignLeft|Qt::AlignTop, phaseInfoStr);
painter.drawText(phaseInfoRect,
Qt::AlignLeft | Qt::AlignTop,
phaseInfoStr);
}

View File

@ -6,11 +6,10 @@
#include <QPrintPreviewDialog>
namespace Ui {
class PrintPreviewForm;
class PrintPreviewForm;
}
class PrintPreviewForm : public QWidget
{
class PrintPreviewForm : public QWidget {
Q_OBJECT
public:
@ -19,13 +18,14 @@ public:
void setPixmap(const QPixmap &);
QPrintPreviewDialog* _customPrintPreviewDialog;
QPrintPreviewDialog *_customPrintPreviewDialog;
private slots:
void slotPaintRequested(QPrinter *printer);
private:
Ui::PrintPreviewForm *ui;
QPrinter * _printer;
QPrinter *_printer;
QPixmap _pixmap;
QPainter *_painter;
};
#endif // PRINTPREVIEWFORM_H