#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 map); QMap 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& map); void slotPseudoResultsChanged(VVecDouble& vvec); void slotPseudoResults3Changed(const VVecDouble& vvec, \ const QMap& mapPsInfos, \ const QMap& mapOthers); void slotPseudoResultsCChanged(const VVecDouble& vvec, \ const QMap& mapPsInfos, \ const QMap& 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 m_mapParaFromFluid; };