#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: void ParseWave(const QString& strFile, std::vector < std::vector>>& vecWavePoint, int iRowCount = 50); void ParseReport(const QString& strFile, std::vector>>& vecReportPoint, int iRowCount = 50); 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; }; #endif // FITCURVEDIALOG_H