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/mTool/mToolDeConv/iWxDeConv.h

163 lines
3.8 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
#include "iDlgBase.h"
#include "mToolDeConv_global.h"
namespace Ui {
class iWxDeConv;
}
class IxPtySource;
class ZxPtyDock;
class ZxRenderItem;
class iCurveDesc;
class ZxTableView;
class ZxTableModel;
class iGuiPlot;
class iGuiPlotPF;
class ZxObjCurvePressure;
class ZxObjCurveFlow;
class ZxObjCurveBase;
class ZxSegmentInfo;
class iGridRowUtils;
class cmAlgDeConv;
class M_TOOL_DECONV_EXPORT iWxDeConv : public iDlgBase
{
Q_OBJECT
public:
explicit iWxDeConv(QWidget* parent = 0);
~iWxDeConv();
// 设置数据及流动段信息
void setDvDataInfos(ZxObjCurvePressure* pCurveP, \
ZxObjCurveFlow* pCurveF, \
ZxSegmentInfo* pSegmentInfo);
// 初始化
virtual void initUI();
protected:
// 左侧输入参数初始化
virtual void initUI_Inputs();
void initUI_Inputs_Paras(); //更新输入参数(根据当前数据)
// 中间图形部分初始化
virtual void initUI_Chart();
void initUI_Chart_Up();
void initUI_Chart_Down();
//右侧表格部分初始化
virtual void initUI_Outputs();
void initUI_Outputs_Default(ZxTableView* pTableView);
#ifdef QT_DEBUG
// 返回数据
virtual bool getParaValue(QString sPara, double &dValue, QString sUnitDest = "");
#endif
protected:
// virtual void paintEvent(QPaintEvent*);
// virtual void resizeEvent(QResizeEvent*);
virtual void onSerialize(ZxSerializer* ser);
virtual void onDeserialize(ZxSerializer* ser);
public:
// 类似clone
virtual void copyFrom(ZxUiBase* p);
public slots:
// 响应左侧GridPty数据的改变注意该函数为父类继承过来的函数不能进行名称更改
virtual void slotParaCtrlValueChanged(QString sPara, QVariant o);
// 属性页
virtual void slotGraphItemPoliciesInstalled(ZxRenderItem*);
// 曲线选择
void slotCurveSelChanged(bool bSelect);
protected:
void bindDockPty(IxPtySource* pPtyObj);
void simuSelectCurve(); //模拟选择第一条曲线
void changeWithCurve(ZxObjCurveBase* pCurve);
QStringList getTableTitlesBy(ZxObjCurveBase* pCurve);
protected:
// 算法+刷新
virtual void calAndFreshRsts();
virtual bool calDeconvRsts();
virtual void freshDeconvRsts();
// Plot 相关
void updateSubPlotDbLog(); //双对数(数据:从反褶积结果中获取)
void updateSubPlotPF(); //压力+流量(数据:从原始绑定的压力流量数据曲线中获取)
void updateSubPlotPF_BSPIN();//BSPIN压力数据数据从反褶积结果中获取
void _updateSubPlot(bool bHistPF, \
QVector<iCurveDesc>& vecDescs, \
bool isAdd);
void _changeCurveAttributes(iGuiPlot* pWxPlot);
void clearChart(iGuiPlot* pWxPlot, bool bClearAll = true); //false时只清空曲线不清空点
// 结果表
// void updateRstTables();
signals:
void sigDeconvRsts(QMap<QString, VecDouble>&, bool);
private slots:
void on_btnCal_clicked();
void on_cbxAutoCal_clicked();
void on_btnOK_clicked();
void on_btnCancel_clicked();
private:
Ui::iWxDeConv *ui;
protected:
// 绘图
iGuiPlot* m_pWxPlot;
iGuiPlotPF* m_pWxPlotPF;
// 左侧输入
// 布局(左侧)
iGridRowUtils* m_pGridItemUtils;
QStringList m_listParas; //哪些参数,对应英文标识
// 参数列表(左侧)
QMap<QString, QVariant> m_mapParas;
// 右侧属性框
ZxPtyDock* m_pDockPty;
QList<IxPtySource*> m_listProps;
// 调用的算法
cmAlgDeConv* m_pAlg;
// 数据部分,从外部传入指针,此处不负责序列化
// VVecDouble* m_pVvecDataF; //流量数据
// VVecDouble* m_pVvecDataP; //压力数据
ZxSegmentInfo* m_pSegInfo;
ZxObjCurvePressure* m_pBindCurveP;
ZxObjCurveFlow* m_pBindCurveF;
};