#pragma once #include "iWxPvtSubPhase.h" namespace Ui { class iWxPvtSubPhaseGas; } class iWxPvtComposition; class M_TOOL_PVT_EXPORT iWxPvtSubPhaseGas : public iWxPvtSubPhase { Q_OBJECT public: explicit iWxPvtSubPhaseGas(QString sFluidType, \ QString sPhaseType, \ QWidget *parent = 0); ~iWxPvtSubPhaseGas(); // 初始化 virtual void initUI(); // 返回数据 virtual bool getParaValue(QString sPara, double &fValue, QString sUnitDest = ""); // 从当前所有的信息中获取参数的值 virtual bool getPvtParaValue(QString s, double& d); // 文件标识 virtual QString getFilePvtTag(); virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); protected: // 默认值 virtual void initDefault(); // 刷新H2S/CO2/N2等 void refreshHCN(); // 刷新摩尔 void refreshMole(); // 根据组分计算并刷新相对密度 void calAndFreshPho(QMap& map); // 计算临界值 void calAndFreshTcPc(QWidget *pSender = NULL); // 判断数值是否正确 bool checkInputOfHCN(QWidget *pSender = NULL); // 在本类对于绘图窗体进行布局调整,注意仅仅是为了代码维护方便而已 virtual void initUI_Others_Btns(QString sPara, QHBoxLayout* pLayoutH); virtual void initUI_Others_Paras(QString sPara, QHBoxLayout* pLayoutH); virtual void changeOthersBtns(QString s); virtual void changeOthersParas(QString s); // 纠正 void runZgMatch(); void getMathExps(VecPointF& vec); void updateMatchPlot(VecDouble x, VecDouble y, VecPointF vecExps); void freshPpcs(double fPpc, double fPpcNew = -1.f); public slots: // 临界计算方法切换 void on_cbxCriticalMethods_currentIndexChanged(const QString &arg1); // H2S/CO2/N2的摩尔模式 void on_radioFraction_clicked(); void on_radioPercent_clicked(); // H2S/CO2/N2的摩尔数值验证 void on_tbxH2S_textChanged(const QString &arg1); void on_tbxCO2_textChanged(const QString &arg1); void on_tbxN2_textChanged(const QString &arg1); // 比重改变 void on_tbxGravity_textChanged(const QString &arg1); void on_btnComposition_clicked(); void slotCompSubChanged(QMap& map); // 自行调整,绘图视图下侧的内容显示 virtual void slotAdjustPlotBottomLayout(QString sPara, QHBoxLayout*& pLayoutH); // match 功能,20210718 void slotBtnZgMatchPrepare(); void slotBtnZgMatchRun(); void slotCbxZgMatchUsePpc(); void slotZgMatchExpData(VVecVariant& vvecData); // 凝析气参数设置 void slotDiffDpRatioGPP(); // 计算时,对于参数的设定 virtual void slotDealwithAlgoMembers(iAlgPvtBase*& p); private: Ui::iWxPvtSubPhaseGas *ui; QMap m_mapComps; int m_nCustomIndex; // match 功能,20210718 QPushButton* m_pBtnZgMatchPrepare; QPushButton* m_pBtnZgMatchRun; QLabel* m_pLblPpcs; QCheckBox* m_pCbxUsePpc; VVecVariant m_vvecExps; //match需要的edit数据 QLineEdit* m_pTbxGPP; QLabel* m_pLblGPP; };