2025-04-11T13:51:47

This commit is contained in:
yuntang 2025-04-11 13:51:47 +08:00
parent 2c303d86a9
commit db60cd0e17
8 changed files with 66 additions and 28 deletions

View File

@ -18,6 +18,8 @@ MainWindow::MainWindow(QWidget *parent)
,_analysisSettingWidget(new AnalysisSettingForm(this)) ,_analysisSettingWidget(new AnalysisSettingForm(this))
,_contextMenu(new QMenu(this)) ,_contextMenu(new QMenu(this))
,_specificHeatComparisonMethodForm(new SpecificHeatComparisonMethodForm(this)) ,_specificHeatComparisonMethodForm(new SpecificHeatComparisonMethodForm(this))
,_instrumentCoefficientForm(new InstrumentCoefficientForm(this))
,_degreeOfCureForm(new DegreeOfCureForm(this))
{ {
ui->setupUi(this); ui->setupUi(this);
this->setToolTip("....."); this->setToolTip(".....");
@ -36,10 +38,16 @@ MainWindow::MainWindow(QWidget *parent)
ui->statusbar->addPermanentWidget(permenentLabel); ui->statusbar->addPermanentWidget(permenentLabel);
// //
// //
_expertmentSettingForm->setWindowFlags(_expertmentSettingForm->windowFlags()| Qt::Dialog); _expertmentSettingForm->setWindowFlags(_expertmentSettingForm->windowFlags()|
_specificHeatComparisonMethodForm->setWindowFlags(_specificHeatComparisonMethodForm->windowFlags()| Qt::Dialog); Qt::Dialog);
_specificHeatComparisonMethodForm->setWindowFlags(
_specificHeatComparisonMethodForm->windowFlags()| Qt::Dialog);
_realTimeDataForm->setWindowFlags(_realTimeDataForm->windowFlags()| Qt::Dialog); _realTimeDataForm->setWindowFlags(_realTimeDataForm->windowFlags()|
Qt::Dialog);
_degreeOfCureForm->setWindowFlags(_degreeOfCureForm->windowFlags()|
Qt::Dialog);
// _realTimeDataForm->show(); // _realTimeDataForm->show();
setActionEnable(true); setActionEnable(true);
@ -223,7 +231,7 @@ void MainWindow::on_actionGlassTransition_triggered()
void MainWindow::on_actionOIT_triggered() void MainWindow::on_actionOIT_triggered()
{ {
QMessageBox::warning(this, "warnning", "on_actionOIT_triggered.");
} }
void MainWindow::on_actionSpecificHeatCompMethod_triggered() void MainWindow::on_actionSpecificHeatCompMethod_triggered()
@ -233,32 +241,29 @@ void MainWindow::on_actionSpecificHeatCompMethod_triggered()
void MainWindow::on_actionDegreeOfCrystallinity_triggered() void MainWindow::on_actionDegreeOfCrystallinity_triggered()
{ {
QMessageBox::warning(this, "warnning", "结晶度.");
} }
void MainWindow::on_actionInstrumentParameter_triggered() void MainWindow::on_actionInstrumentParameter_triggered()
{ {
_instrumentCoefficientForm->show();
} }
void MainWindow::on_actionInitialMeltingPoint_triggered() void MainWindow::on_actionInitialMeltingPoint_triggered()
{ {
} }
void MainWindow::on_actionFinalMeltingPoint_triggered() void MainWindow::on_actionFinalMeltingPoint_triggered()
{ {
} }
void MainWindow::on_actionOITAutoAnalysisParam_triggered() void MainWindow::on_actionOITAutoAnalysisParam_triggered()
{ {
} }
void MainWindow::on_actionOITAutoAnalysisMode_triggered() void MainWindow::on_actionOITAutoAnalysisMode_triggered()
{ {
//
} }
void MainWindow::on_actionTimeAxisAnalysisPCTMode_triggered() void MainWindow::on_actionTimeAxisAnalysisPCTMode_triggered()
@ -268,5 +273,6 @@ void MainWindow::on_actionTimeAxisAnalysisPCTMode_triggered()
void MainWindow::on_actionDegreeOfCuring_triggered() void MainWindow::on_actionDegreeOfCuring_triggered()
{ {
//
_degreeOfCureForm->show();
} }

View File

@ -13,6 +13,9 @@
#include "rightwidget.h" #include "rightwidget.h"
#include "analysissettingform.h" #include "analysissettingform.h"
#include "specificheatcomparisonmethodform.h" #include "specificheatcomparisonmethodform.h"
#include "degreeofcrystallinityform.h"
#include "instrumentcoefficientform.h"
#include "degreeofcureform.h"
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; } namespace Ui { class MainWindow; }
@ -79,5 +82,8 @@ private:
QMenu* _contextMenu; QMenu* _contextMenu;
AnalysisSettingForm* _analysisSettingWidget; AnalysisSettingForm* _analysisSettingWidget;
SpecificHeatComparisonMethodForm* _specificHeatComparisonMethodForm; SpecificHeatComparisonMethodForm* _specificHeatComparisonMethodForm;
DegreeOfCrystallinityForm * _degreeOfCrystallinityForm;
InstrumentCoefficientForm* _instrumentCoefficientForm;
DegreeOfCureForm *_degreeOfCureForm;
}; };
#endif // MAINWINDOW_H #endif // MAINWINDOW_H

View File

@ -45,15 +45,12 @@ CentralWidget::CentralWidget(QWidget *parent)
_eventHandler->setEnable(true); _eventHandler->setEnable(true);
_customPlot->installEventFilter(_eventHandler); _customPlot->installEventFilter(_eventHandler);
_customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables); // _customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);
_customPlot->setInteractions( QCP::iRangeZoom | QCP::iSelectPlottables);
connect(_eventHandler,&EventHandler::sigSendLineXCoord, connect(_eventHandler,&EventHandler::sigSendLineXCoord,
this,&CentralWidget::sigSendLineXCoord); this,&CentralWidget::sigSendLineXCoord);
// connect(_customPlot, &QCustomPlot::selectionChangedByUser,
// this, &CentralWidget::slotSelectionChanged);
setEventHandlerEnable(false); setEventHandlerEnable(false);
// //
#if 0 #if 0
@ -143,9 +140,8 @@ void CentralWidget::slotRecvAnalysisFileName(const QString &fileName)
{ {
qDebug() << "slotRecvAnalysisFileName" << fileName; qDebug() << "slotRecvAnalysisFileName" << fileName;
// // todo.禁止重复文件添加。
// clearData(ClearDataMode::All);
//
_dataVtr.clear(); _dataVtr.clear();
FileManager::readExperimentFile(fileName, _dataVtr); FileManager::readExperimentFile(fileName, _dataVtr);
@ -208,6 +204,7 @@ void CentralWidget::slotRecvAnalysisFileName(const QString &fileName)
_customPlot->replot(); _customPlot->replot();
} }
// discard
void CentralWidget::slotSelectionChanged() void CentralWidget::slotSelectionChanged()
{ {
logde<<"selectedPlottables:"<< _customPlot->selectedPlottables().size(); logde<<"selectedPlottables:"<< _customPlot->selectedPlottables().size();
@ -598,12 +595,16 @@ void CentralWidget::clearData(const CentralWidget::ClearDataMode mode)
{ {
if(mode == ClearDataMode::All){ if(mode == ClearDataMode::All){
// Clear the data of graph. // Clear the data of graph.
#if 0
if (_customPlot->graphCount() > 0 && _currentGraph) for (int i = _customPlot->plottableCount() - 1; i >= 0; --i) {
{ QCPAbstractPlottable* plottable = _customPlot->plottable(i);
_currentGraph->setData(QVector<double>(), QVector<double>()); if (auto curve = dynamic_cast<QCPCurve*>(plottable)) {
_customPlot->removePlottable(curve);
} }
#endif }
// Clear data.
Global::instance()->_curveDataVtr.clear();
// Set lines visiable false. // Set lines visiable false.
_line1->setVisible(false); _line1->setVisible(false);
@ -624,6 +625,7 @@ void CentralWidget::clearData(const CentralWidget::ClearDataMode mode)
} }
} }
#endif #endif
// Delete items. // Delete items.
QList<QCPAbstractItem *> itemsToKeep; QList<QCPAbstractItem *> itemsToKeep;
itemsToKeep << _line1 << _line2; itemsToKeep << _line1 << _line2;

View File

@ -12,3 +12,13 @@ DegreeOfCrystallinityForm::~DegreeOfCrystallinityForm()
{ {
delete ui; delete ui;
} }
void DegreeOfCrystallinityForm::on_pushButtonCalculate_clicked()
{
}
void DegreeOfCrystallinityForm::on_pushButtonQuit_clicked()
{
}

View File

@ -15,6 +15,11 @@ public:
explicit DegreeOfCrystallinityForm(QWidget *parent = nullptr); explicit DegreeOfCrystallinityForm(QWidget *parent = nullptr);
~DegreeOfCrystallinityForm(); ~DegreeOfCrystallinityForm();
private slots:
void on_pushButtonCalculate_clicked();
void on_pushButtonQuit_clicked();
private: private:
Ui::DegreeOfCrystallinityForm *ui; Ui::DegreeOfCrystallinityForm *ui;
}; };

View File

@ -76,7 +76,7 @@ bool EventHandler::eventFilter(QObject *obj, QEvent *event)
_draggingLine->point1->setCoords(x, _plot->yAxis->range().lower); _draggingLine->point1->setCoords(x, _plot->yAxis->range().lower);
_draggingLine->point2->setCoords(x, _plot->yAxis->range().upper); _draggingLine->point2->setCoords(x, _plot->yAxis->range().upper);
_plot->replot(); _plot->replot();
updateSelectedRegion(); // updateSelectedRegion();
} }
} }
else if (event->type() == QEvent::MouseButtonPress) else if (event->type() == QEvent::MouseButtonPress)
@ -226,6 +226,7 @@ void EventHandler::slotSample()
void EventHandler::updateSelectedRegion() void EventHandler::updateSelectedRegion()
{ {
#if 0
double x1 = _line1->point1->coords().x(); double x1 = _line1->point1->coords().x();
double x2 = _line1->point1->coords().x(); double x2 = _line1->point1->coords().x();
if (x1 > x2) if (x1 > x2)
@ -246,6 +247,7 @@ void EventHandler::updateSelectedRegion()
int index2 = findClosestIndex(xData, x2); int index2 = findClosestIndex(xData, x2);
// qDebug() << "Selected region: [" << xData[index1] << ", " << xData[index2] << "]"; // qDebug() << "Selected region: [" << xData[index1] << ", " << xData[index2] << "]";
#endif
} }
int EventHandler::findClosestIndex(const QVector<double> &data, double target) int EventHandler::findClosestIndex(const QVector<double> &data, double target)

View File

@ -23,7 +23,7 @@ public:
#endif #endif
~EventHandler(); ~EventHandler();
void setGraph(QCPGraph* g){ _graph = g;} // void setGraph(QCPGraph* g){ _graph = g;}
void setEnable(const bool flag){_enableFlag = flag;} void setEnable(const bool flag){_enableFlag = flag;}
enum Mode{ enum Mode{
Null, Null,
@ -52,7 +52,7 @@ private:
QCustomPlot *_plot; QCustomPlot *_plot;
QCPItemStraightLine *_line1,*_line2; QCPItemStraightLine *_line1,*_line2;
QCPItemStraightLine *_draggingLine = nullptr; QCPItemStraightLine *_draggingLine = nullptr;
QCPGraph *_graph; // QCPGraph *_graph;
QMenu* _menu; QMenu* _menu;
QAction* _specificHeatItemAction,*_baseLineAction, QAction* _specificHeatItemAction,*_baseLineAction,
*_standardSampleAction,*_sampleAction; *_standardSampleAction,*_sampleAction;

View File

@ -126,7 +126,14 @@ void SpecificHeatComparisonMethodForm::on_pushButtonCalculate_clicked()
float standardSampleWeight = ui->LineEditStandardSampleWeight->text().toFloat(); float standardSampleWeight = ui->LineEditStandardSampleWeight->text().toFloat();
float sampleWeight = ui->LineEditSampleWeight->text().toFloat(); float sampleWeight = ui->LineEditSampleWeight->text().toFloat();
// double cpTarget = cp * float k = ui->LineEditCorrectionCoefficient->text().toFloat();
// 蓝宝石比热容 * 标样质量 * (样品流值 - 基线流值)* 系数 /(样品质量 * (标样流值 - 基线流值))
double cpTarget = cp * standardSampleWeight * ( samplePoint.y() - baseLinePoint.y()) * k /
(sampleWeight *(standardSamplePoint.y() - baseLinePoint.y()));
ui->LineEditStandardSampleSpecificHeat->setText(QString::number(cp,'f',3));
ui->LineEditSampleSpecificHeat->setText(QString::number(cpTarget,'f',3));
} }
void SpecificHeatComparisonMethodForm::on_pushButtonQuit_clicked() void SpecificHeatComparisonMethodForm::on_pushButtonQuit_clicked()