#pragma once #include "iWxPseuSub.h" #include "mToolPseu_global.h" class M_TOOL_PSEU_EXPORT iWxPseuSubNormal : public iWxPseuSub { Q_OBJECT public: explicit iWxPseuSubNormal(QWidget *parent = 0); ~iWxPseuSubNormal(); void initUI(); // 传递参数 virtual void setInfos(QString sFluidType, QString sPhaseType, QString sPara); // 传递参数 void calAndFreshBy(QMap& mapInputs); // 是否已经正确进行了拟压力计算 virtual bool hasProperPseuRst(); /// @brief 获取 拟压力页面中,拟压力结果表 /// @param vvec,返回数据,长度为4,分别为压力P/拟压力Ps/偏差因子Zg/黏度Miug /// 压力,单位 Mpa /// 拟压力,单位 Pa/sec /// 偏差因子,单位 Pa/sec /// 黏度,单位 Pa/sec virtual bool getPseuRstOf(VVecDouble& vvec); // 组织四列拟压力相关的数据 // VecDouble vecP = vvec[0] // VecDouble vecPs = vvec[1] // VecDouble vecZg = vvec[2] // VecDouble vecMug = vvec[3] bool getPseuPseuInfos(VVecDouble& vvec); // 文件标识 virtual QString getFilePseuTag(); // 辅助信息 virtual void dealwithDesc(); // 初始化算法 virtual void initAlg(); // 算法计算入口 virtual void calAndFreshPseu(bool bCreateIfFirst = true); protected: virtual void initUI_Others_Paras(QHBoxLayout* pLayoutH); // 四个范围点,nWhich:0-3 double getPrsScale(int nWhich); // 步长 double getPrsStep(); // 获取数值 double getCtrlValueBy(QString sKey); protected slots: // 压力段范围点改变 void slotPrsScaleChanged(); // 压力段步长改变 void slotPrsStepChanged(); // 根据当前压力段范围点重新计算 void slotBtnRefresh(); private: // 初始化 virtual QWidget* initUI_Chart(); virtual void initUI_Others(); // 算法有多少种 virtual void dealwithMethods(); // 标题 virtual void dealwithTitles(); // 计算点 virtual bool calResultPos(QPointF& pt); // 组织数据 bool organizeInputs(QString sX, \ QMap& mapInputs, \ QMap& mapParas); signals: private: VecDouble m_vecZg; VecDouble m_vecMug; };