#pragma once #include "iWxPseuSub.h" #include "mToolPseu_global.h" class iWxPseudo3Sub; class iAlgPseuMethodTriInfo; class M_TOOL_PSEU_EXPORT iWxPseuSubTri : public iWxPseuSub { Q_OBJECT public: explicit iWxPseuSubTri(QWidget *parent = 0); ~iWxPseuSubTri(); // 初始化 virtual void initUI(); // 传递参数 virtual void setInfos(QString sFluidType, QString sPhaseType, QString sPara); // 最后一个SubWx iWxPseudo3Sub* getSubWxPseu(); iWxPseudo3Sub* getSubWxBy(QString sName); // 初始化算法 virtual void initAlg(); // 算法计算入口 virtual void calAndFreshPseu(bool bCreateIfFirst = true); // 是否已经正确进行了拟压力计算 virtual bool hasProperPseuRst(); /// @brief 获取 拟压力页面中,拟压力结果表 /// @param vvec,返回数据,长度为4,分别为压力P/拟压力Ps/偏差因子Zg/黏度Miug /// 压力,单位 Mpa /// 拟压力,单位 Pa/sec /// 偏差因子,单位 Pa/sec /// 黏度,单位 Pa/sec virtual bool getPseuRstOf(VVecDouble& vvec); // 传递参数 void calAndFreshBy(VecDouble& vecX); // 最终的计算函数 bool calPseudo3(VecDouble& vecP, VecDouble& vecPs, QString& sAllExpr, bool bLogging); // 刷新最终的Sub图表 bool freshFinalPs(VecDouble& vecP, VecDouble& vecPs, QString sAllExpr); // 返回数据,触发信息 bool getPseuPseuInfos(VVecDouble& vvec, \ QMap& mapPsInfos, \ QMap& mapOthers); // 保存 // void saveBkInfos(); // 文件标识 virtual QString getFilePseuTag(); virtual bool savePseu(); private: // 算法有多少种 virtual void dealwithMethods(); // 算法切换 void refreshByMethod(QString s); // 准备 void preparePsInfos(QMap& mapInfos, bool bOut); void prepareOthers(); signals: private slots: void slotSubWxChanged(int); void slotRefreshPseu(); private: QStackedWidget* m_pStackedWx; VecDouble m_vecX; };