DYTSrouce/src/ui/chartPlot/FitCurveDialog.h

81 lines
2.4 KiB
C
Raw Normal View History

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