2025-01-04 04:12:51 +00:00
|
|
|
|
#ifndef FITCURVEDIALOG_H
|
|
|
|
|
#define FITCURVEDIALOG_H
|
|
|
|
|
|
|
|
|
|
#include <QDialog>
|
|
|
|
|
#include "FitCurveChartView.h"
|
|
|
|
|
|
|
|
|
|
#include "ui_FitCurveDialog.h"
|
|
|
|
|
|
|
|
|
|
namespace Ui {
|
|
|
|
|
class FitCurveDialog;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class FitCurveDialog : public QDialog
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
explicit FitCurveDialog(int iType=1, QWidget* parent = nullptr);
|
|
|
|
|
~FitCurveDialog();
|
|
|
|
|
|
|
|
|
|
void AttachDock(class DockWidget* dockWidget);
|
|
|
|
|
|
|
|
|
|
void initQChartView();
|
|
|
|
|
void updateXYGuideLine();
|
|
|
|
|
void resetZoomAndScroll();
|
|
|
|
|
QVector<int> getAxisRanges();
|
|
|
|
|
|
|
|
|
|
void InitWaveFile(const QString& strFile, int iBatchCount = 50);
|
|
|
|
|
void InitReportFile(const QString& strFile, int iBatchCount = 50);
|
|
|
|
|
|
|
|
|
|
protected:
|
2025-07-20 08:34:48 +00:00
|
|
|
|
bool ParseWave(const QString& strFile, std::vector < std::vector<std::vector<float>>>& vecWavePoint, int iRowCount = 50);
|
|
|
|
|
bool ParseReport(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecReportPoint, int iRowCount = 50);
|
2025-01-05 11:12:18 +00:00
|
|
|
|
void OnWorkSpaceChanged(class WorkSpace*);
|
|
|
|
|
void OnTimestepChanged(class Timestep*);
|
2025-01-04 04:12:51 +00:00
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
void theSlotMouseEvent(int eventId, QMouseEvent* event);
|
|
|
|
|
void theSlotWheelEvent(QWheelEvent* event);
|
|
|
|
|
|
|
|
|
|
void slotAddSeries(QVariant varSeriesData);
|
|
|
|
|
|
2025-07-20 08:34:48 +00:00
|
|
|
|
void slotDelCurve(int iID); // ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-01-04 04:12:51 +00:00
|
|
|
|
|
|
|
|
|
void slotInserKeyPoint(int iID,float xValue, float yValue);
|
|
|
|
|
|
|
|
|
|
void slotUpdateTime(double dTime);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
Ui::FitCurveDialog* ui;
|
|
|
|
|
FitCurveChartView* curveChartView;
|
|
|
|
|
QChart* curveChart;
|
|
|
|
|
|
2025-07-20 08:34:48 +00:00
|
|
|
|
//QSplineSeries* fitPointsSeriesS; //Ҫ<><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
|
2025-01-04 04:12:51 +00:00
|
|
|
|
//QScatterSeries* tipSeries;
|
2025-07-20 08:34:48 +00:00
|
|
|
|
//QSplineSeries* xGuideSeries; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õ<EFBFBD><C3B5>x<EFBFBD>Ḩ<EFBFBD><E1B8A8><EFBFBD><EFBFBD>
|
|
|
|
|
//QSplineSeries* yGuideSeries; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õ<EFBFBD><C3B5>y<EFBFBD>Ḩ<EFBFBD><E1B8A8><EFBFBD><EFBFBD>
|
|
|
|
|
bool isPressed = false; //ͼ<><CDBC><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ק<EFBFBD><D7A7>
|
|
|
|
|
QPoint pressedPoint; //<2F><><EFBFBD><EFBFBD><EFBFBD>ק<EFBFBD><D7A7><EFBFBD>
|
2025-01-04 04:12:51 +00:00
|
|
|
|
|
2025-07-20 08:34:48 +00:00
|
|
|
|
int m_iType; // y<><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-01-04 04:12:51 +00:00
|
|
|
|
|
|
|
|
|
QValueAxis* m_pAxisX = NULL;
|
|
|
|
|
QValueAxis* m_pAxisY = NULL;
|
|
|
|
|
QLogValueAxis* m_pLgAxisY = NULL;
|
|
|
|
|
float m_iXMax;
|
|
|
|
|
float m_iXMin;
|
|
|
|
|
float m_iYMax;
|
|
|
|
|
float m_iYMin;
|
|
|
|
|
|
|
|
|
|
QMap<int, QSplineSeries*> m_seriesIDMap;
|
|
|
|
|
|
|
|
|
|
std::vector<std::vector<std::vector<float>>> m_vecWavePoint;
|
|
|
|
|
std::vector<std::vector<std::vector<float>>> m_vecReportPoint;
|
|
|
|
|
|
|
|
|
|
int m_iID = 1;
|
2025-07-20 08:34:48 +00:00
|
|
|
|
QString m_titleText;
|
|
|
|
|
class DockTitleBar* m_pDockTitleBar { nullptr };
|
2025-01-04 04:12:51 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // FITCURVEDIALOG_H
|