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.
nmWATI/Include/mGui/mGuiJob/iWxDataFluidSub.h

100 lines
2.6 KiB
C

#pragma once
#include "iWxBase.h"
#include "mGuiJob_global.h"
namespace Ui {
class iWxDataFluidSub;
}
class iWxPvtMain;
class iPseu3Wrapper;
class iPseudo3Info;
class iPseuCWrapper;
class iPseudoCInfo;
class M_GUI_JOB_EXPORT iWxDataFluidSub : public iWxBase
{
Q_OBJECT
public:
explicit iWxDataFluidSub(QString sFluid, QWidget *parent = 0);
~iWxDataFluidSub();
virtual void initUI();
QString getFluid();
void setPhaseS(bool b);
bool getPhaseS();
// 启动Gas自动显示模式
void runAutoShow();
// 拟压力模式
VVecDouble getPseuData();
iPseu3Wrapper* getPseuData3(); //三区
iPseuCWrapper* getPseuDataC();
//Pseudo
void setMapParaFromFluid(QMap<QString, double> map);
QMap<QString, double> getMapParaFromFluid();
bool getMapParaValue(QString str, double& f);
// 由于多相用的时候得顺序问题,故权宜之计
bool getParaValueEx(QString sPara, double& f);
public:
void copyFrom(iDlgBase* pFrom);
// 序列化
virtual void onSerialize(ZxSerializer* ser);
virtual void onDeserialize(ZxSerializer* ser);
private:
void initAdvCtrls();
void freshAdvCtrls();
protected:
virtual void paintEvent(QPaintEvent *);
private slots:
void on_cbxUseAdvanced_clicked();
void on_btnCalSoSg_clicked(); //计算饱和度
void on_btnCal3C_clicked(); //通过弹出PVT对话框计算压缩系数等
void on_btnCalFinal_clicked(); //最终刷新计算
void slotPvtResultsChanged(QMap<QString,double>& map);
void slotPseudoResultsChanged(VVecDouble& vvec);
void slotPseudoResults3Changed(const VVecDouble& vvec, \
const QMap<QString, iPseudo3Info*>& mapPsInfos, \
const QMap<QString, double>& mapOthers);
void slotPseudoResultsCChanged(const VVecDouble& vvec, \
const QMap<QString, iPseudoCInfo*>& mapPsInfos, \
const QMap<QString, double>& mapOthers);
private:
Ui::iWxDataFluidSub *ui;
QString m_sFluid; //油气水
bool m_bSinglePhase; //是否单相
QStringList m_listParas; //参数项
// //Pseudo结果四列
// VecDouble vecP = vvec[0]
// VecDouble vecPs = vvec[1]
// VecDouble vecZg = vvec[2]
// VecDouble vecMug = vvec[3]
VVecDouble m_vvecPseuData;//原先VecPointF
iPseu3Wrapper* m_pPseu3Wrapper; //对于三区,采用数据体
iPseuCWrapper* m_pPseuCWrapper;
iWxPvtMain* m_pWxPvt;
//Pseudo
QMap<QString, double> m_mapParaFromFluid;
};