81 lines
2.4 KiB
C++
81 lines
2.4 KiB
C++
#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:
|
||
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);
|
||
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); // ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
void slotInserKeyPoint(int iID,float xValue, float yValue);
|
||
|
||
void slotUpdateTime(double dTime);
|
||
|
||
private:
|
||
Ui::FitCurveDialog* ui;
|
||
FitCurveChartView* curveChartView;
|
||
QChart* curveChart;
|
||
|
||
//QSplineSeries* fitPointsSeriesS; //Ҫ<><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
|
||
//QScatterSeries* tipSeries;
|
||
//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>
|
||
|
||
int m_iType; // y<><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
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;
|
||
QString m_titleText;
|
||
class DockTitleBar* m_pDockTitleBar { nullptr };
|
||
};
|
||
|
||
#endif // FITCURVEDIALOG_H
|