You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/mGui/mGuiAnal/iWxPfModel.h

120 lines
3.4 KiB
C

#pragma once
#include "iWxBase.h"
#include "mGuiAnal_global.h"
namespace Ui {
class iWxPfModel;
}
class iGuiPlot;
class ZxTableView;
class ZxTableModel;
class iCurveDesc;
class iDefineChart;
class iDefineChartCurve;
class M_GUI_ANAL_EXPORT iWxPfModel : public iWxBase
{
Q_OBJECT
public:
explicit iWxPfModel(QString sPfModelName, QWidget *parent = 0);
~iWxPfModel();
// 初始化
virtual void initUI();
// 文件标识
virtual QString getFilePfTag();
// 是否向导模式
void setWizardMode(bool b);
protected:
// 初始化
virtual void initUI_Tops();
virtual void initUI_ChartAndTable();
virtual QWidget* initUI_Chart(bool bRaw);
virtual QWidget* initUI_TableView();
/// @brief 表格数据改变,与图形相关内容(总的触发接口)
virtual void freshChartByTableChange();
/// @brief 由表格数据转换为绘制x-y曲线图的数据
/// @note 通常对y进行调整组织形式仍然是表格 getData 返回的形式
virtual bool adjustDataByModel(VVecVariant& vvec);
/// @brief 调整后的数据进行绘图/拟合等相关操作
/// @param vvecRaw表格中原始数据
/// @param vvecProcessed为调整后数据组织形式仍然是表格 getData 返回的形式
virtual void refreshChart(const VVecVariant& vvecRaw, const VVecVariant& vvecProcessed);
/// @brief 获取对应的曲线定义,一共两条,原始和拟合
/// @param bLeftWxPlot具体画哪幅图左侧为原始右侧为拟合
/// @param bFitCurve具体画哪根线对于左侧图只有原始对于右侧图原始为处理后点右侧为曲线
iDefineChartCurve* getCurveDefineOf(bool bLeftWxPlot, bool bFitCurve = false);
// 曲线基础操作
// 配置曲线
void configCurveDecs(iCurveDesc* pDesc, \
const VecDouble& x, const VecDouble& y, \
iDefineChartCurve* pDC);
// 添加曲线
virtual bool addCurveBy(VecDouble& x, VecDouble& y, \
iDefineChartCurve* pDC, \
iGuiPlot* pWxPlot);
// 对图形进行最后调整
virtual void _changeCurveAttributes(iGuiPlot* pWxPlot);
// 移除指定曲线
virtual void removeCurveOf(iGuiPlot* pWxPlot, QString sName);
// 清空
virtual void clearChart(iGuiPlot* pWxPlot);
protected:
/// @brief 绘图等相关操作(原始的点或者处理后的点)
/// @param bLeftWxPlot具体画哪幅图左侧为原始右侧为拟合
/// @param vvec表格中原始数据
void _refreshChart_Raw(bool bLeftWxPlot, const VVecVariant& vvec);
protected slots:
virtual void slotTableCellChanged(const QModelIndex&, const QModelIndex&);
virtual void slotTableRowChanged(QModelIndexList listOlds, \
QModelIndexList listNews, QModelIndex index);
public:
// 序列化
// void saveBkInfos();
// void loadBkInfos();
// QString getBkInfoFile(QString s);
// 窗体关闭的情形
virtual void closeEvent(QCloseEvent *);
protected:
Ui::iWxPfModel *ui;
// 针对的方法标识
QString m_sPfModelName;
iDefineChart* m_pChartDefineRaw;
iDefineChart* m_pChartDefineFit;
// 绘图/表格展示
iGuiPlot* m_pWxPlotRaw;
iGuiPlot* m_pWxPlotFit;
ZxTableView* m_pTableView;
ZxTableModel* m_pTableModel;
// 是否向导模式
bool m_bWizardMode;
};