#ifndef FITCURVEDIALOG_H #define FITCURVEDIALOG_H #include #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 getAxisRanges(); void InitWaveFile(const QString& strFile, int iBatchCount = 50); void InitReportFile(const QString& strFile, int iBatchCount = 50); protected: bool ParseWave(const QString& strFile, std::vector < std::vector>>& vecWavePoint, int iRowCount = 50); bool ParseReport(const QString& strFile, std::vector>>& vecReportPoint, int iRowCount = 50); void OnWorkSpaceChanged(class WorkSpace*); void OnTimestepChanged(class Timestep*); public slots: void theSlotMouseEvent(int eventId, QMouseEvent* event); void theSlotWheelEvent(QWheelEvent* event); void slotAddSeries(QVariant varSeriesData); void slotDelCurve(int iID); // ɾ������ void slotInserKeyPoint(int iID,float xValue, float yValue); void slotUpdateTime(double dTime); private: Ui::FitCurveDialog* ui; FitCurveChartView* curveChartView; QChart* curveChart; //QSplineSeries* fitPointsSeriesS; //Ҫ��ʾ������ԭʼ���� //QScatterSeries* tipSeries; //QSplineSeries* xGuideSeries; //�������λ�õ��x�Ḩ���� //QSplineSeries* yGuideSeries; //�������λ�õ��y�Ḩ���� bool isPressed = false; //ͼ���Ƿ�����ק�� QPoint pressedPoint; //�����ק��� int m_iType; // y������ 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 m_seriesIDMap; std::vector>> m_vecWavePoint; std::vector>> m_vecReportPoint; int m_iID = 1; QString m_titleText; class DockTitleBar* m_pDockTitleBar { nullptr }; }; #endif // FITCURVEDIALOG_H