|
|
|
|
|
#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;
|
|
|
|
|
|
};
|