DSCAnalysisTool/src/ui/centralwidget.h

101 lines
2.7 KiB
C
Raw Normal View History

2025-03-05 09:33:46 +00:00
#ifndef CENTRALWIDGET_H
#define CENTRALWIDGET_H
#include <QWidget>
2025-03-21 09:28:36 +00:00
#include <QMenu>
2025-03-12 09:29:52 +00:00
2025-03-06 09:31:55 +00:00
#include "qcustomplot.h"
2025-03-12 09:29:52 +00:00
#include "protocol.h"
#include "global.h"
2025-04-10 07:20:57 +00:00
#include "eventhandler.h"
2025-03-26 09:30:02 +00:00
#include "filemanager.h"
2025-04-21 09:31:38 +00:00
#include "pointcalculate.h"
2025-04-25 09:20:33 +00:00
#include "localcustomplot.h"
2025-03-05 09:33:46 +00:00
class CentralWidget:public QWidget
{
Q_OBJECT
public:
2025-03-20 09:28:22 +00:00
enum AnalysisMode{
2025-04-24 06:35:53 +00:00
Null,
2025-03-20 09:28:22 +00:00
NumericalLabel,
StartPoint,
StopPoint,
2025-04-03 09:24:29 +00:00
PeakSynthesisAnalysis,
2025-04-28 06:16:26 +00:00
GlassTransition,
OnsetTemperaturePoint,
EndsetTemperaturePoint
2025-03-20 09:28:22 +00:00
};
2025-03-05 09:33:46 +00:00
CentralWidget(QWidget *parent = nullptr);
2025-03-19 03:19:52 +00:00
~CentralWidget();
2025-03-20 09:28:22 +00:00
void setAnalysisMode(const AnalysisMode);
2025-03-25 08:45:16 +00:00
void clearAllData();
2025-04-10 09:33:38 +00:00
EventHandler* getEvnetHandler(){return _eventHandler;}
2025-04-25 09:20:33 +00:00
QPixmap getPixMap();
2025-04-28 09:31:29 +00:00
enum AxisMode{
SingleY,
DoubleY
};
void switchAxisMode();
2025-03-21 09:28:36 +00:00
signals:
void sigContextMenuShow(const QPoint);
void sigSendLineXCoord(const int,const double);
2025-04-01 09:25:12 +00:00
void sigRightDockWidgetHide();
2025-03-12 09:29:52 +00:00
public slots:
2025-04-23 07:33:39 +00:00
// experiment
void slotAxisModify(const float temp);
2025-03-12 09:29:52 +00:00
void slotModeModify(const Global::Mode);
2025-03-19 07:19:45 +00:00
void slotRecvCommonData(const CommonData&);
void slotRecvAnalysisFileName(const QString&);
2025-04-10 09:33:38 +00:00
2025-03-21 09:28:36 +00:00
//analysis setting
void slotAnalysisSettingApply();
void slotAnalysisSettingConfirm();
2025-03-24 09:30:42 +00:00
void slotAnalysisSettingUndo();
void slotAnalysisSettingCancel();
2025-04-24 08:41:20 +00:00
void slotAnalysisSettingLineXPoint(const int index,const double);
2025-04-27 07:27:07 +00:00
void slotDrawCustomText(const QString);
2025-03-06 09:31:55 +00:00
protected:
void timerEvent(QTimerEvent* event);
2025-03-21 09:28:36 +00:00
void contextMenuEvent(QContextMenuEvent *event);
2025-03-12 09:29:52 +00:00
private:
2025-04-03 09:24:29 +00:00
void glassTransitionHandle();
2025-04-21 09:31:38 +00:00
void glassTransitionHandle2();
void quadraticFit(const QVector<QPointF>& points, double& a, double& b, double& c);
double derivativeAt(const double a, const double b, const double x);
PointCalculate::Line calculateLinearRegression(const QVector<double>& x, const QVector<double>& y);
2025-03-21 09:28:36 +00:00
void setEventHandlerEnable(const bool);
2025-04-23 09:25:38 +00:00
QPointF getTheCoordinatesOfTheTextBox(const QPointF point);
2025-03-26 09:30:02 +00:00
void drawText(const QPointF,const QString);
2025-03-25 08:45:16 +00:00
void fillGraph(const double x1,const double x2);
2025-04-08 09:30:33 +00:00
2025-04-01 09:25:12 +00:00
enum ClearDataMode{
All,
Undo
};
void clearData(const ClearDataMode);
2025-03-06 09:31:55 +00:00
private:
2025-04-03 09:24:29 +00:00
AnalysisMode _analysisMode;
2025-04-25 09:20:33 +00:00
LocalCustomPlot *_customPlot;
2025-04-27 07:27:07 +00:00
// QCustomPlot*_customPlot;
2025-04-09 09:30:32 +00:00
QCPCurve *_currentCurve;
2025-04-27 07:27:07 +00:00
// QVector<QCPCurve *> _curveVtr;
// QCPGraph* _currentGraph;
// QVector<QCPGraph*> _graphVtr;
2025-04-10 07:20:57 +00:00
EventHandler* _eventHandler;
2025-03-20 09:28:22 +00:00
QCPItemStraightLine *_line1,*_line2;
2025-04-27 07:27:07 +00:00
// QVector<Global::ExperimentData> _dataVtr;
2025-04-03 09:24:29 +00:00
QVector<QCPItemStraightLine*> _lineVtr;
2025-04-28 09:31:29 +00:00
AxisMode _axisMode;
2025-03-05 09:33:46 +00:00
};
#endif // CENTRALWIDGET_H