DYTSrouce/src/ui/chartPlot/DYTChart.h
2025-01-04 12:12:51 +08:00

81 lines
2.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <QtWidgets/QMainWindow>
#include "ui/Dialog.h"
#include "ui_DYTChart.h"
class FitCurveDialog;
class SurfaceDialog;
class DYTChart : public Dialog
{
Q_OBJECT
public:
DYTChart(int iType , QWidget *parent = Q_NULLPTR);
QVariant GetChart();
void InitChartData(QVariant var);
protected:
void InitChart(int iType); // 初始化绘图场景1二维曲线 2二维曲线y轴对数3三维曲线
void InitConnect(); // 信号槽连接
void ParseAnimationPath(const QString& strFile, std::vector<std::vector<float>>& vecAnimationPath); // 解析运动轨迹文件
void ParseTimeStep(const QString& strFile, std::vector<float>& vecTime); // 解析时间步长文件
void ParseAntennaPatternFile(const QString& strFile, std::vector<std::vector<float>>& vecAntennaPattern);
void ParseBeamPointFile(const QString& strFile, std::vector<std::vector<float>>& vecBeamPoint);
void ParseRD(const QString& strFile, std::vector<std::vector<float>>& vecRDPoint, int iRowCount=64);
void ParseWave(const QString& strFile, std::vector<std::vector<float>>& vecWavePoint, int iRowCount = 50);
void InitXTable(const QString& strFilePath);
void InitYTable(const QString& strFilePath);
void InitZTable(const QString& strFilePath);
void UpdateRDCurve(int iTime, int iSelRowCount = 64);
void Clear();
protected slots:
void slotSelXFile(); // 选择X数据文件
void slotSelYFile(); // 选择Y数据文件
void slotSelZFile(); // 选择Z数据文件
void slotCurveChanged(int iIndex); // 切换曲线图类型
void slotChangeAddedCurve(int iIndex); // 已添加的曲线
void slotChangedColor(); // 修改颜色
void slotAdd(); // 添加
void slotUpdate(); // 更新
void slotDel(); // 删除
void slotUpdateTime(double iTime);
signals:
void signalUpdateData(QVariant var); // 更新数据
void signalUpdateColor(QColor color); // 更新颜色
void signalAddCurve(QVariant varCurve); // 添加曲线
void signalDelCurve(int iID); // 删除曲线
void signalAddLgCurve(QVariant varCurve); // 添加曲线
void signalDelLgCurve(int iID); // 删除曲线
void signalAddSurfaceCurve(QVariant varCurve); // 添加曲线
private:
Ui::DYTChartClass ui;
int m_iCurveID = 0; // 曲线图ID
int m_iCurSelID = 0; // 当前选择的曲线ID
int m_iCurveType = 0; // 曲线类型 1二维曲线 2二维曲线y轴对数3三维曲线
FitCurveDialog* m_p2DCurve = NULL; // 二维曲线
FitCurveDialog* m_p2DLgCurve = NULL; // 二维曲线y轴对数
SurfaceDialog* m_p3DSuf = NULL; // 三维曲线
QVariantMap m_varCur3DParamMap;
int m_iCurTime = 0;
};