#pragma once #include "qglobal.h" #if (QT_VERSION >= 0x050000) #include #define QWebView QWebEngineView #else #include #endif #include "iWxPvtBase.h" #include "mToolPvt_global.h" class iPvtBase; class TreeWxConfig; class iWxPvtSubHeader; class iPvtParaItemGroup; class iWxPvtUtilItem; class M_TOOL_PVT_EXPORT iWxPvtSubPhase : public iWxPvtBase { Q_OBJECT public: explicit iWxPvtSubPhase(QString sFluidType, QString sPhaseType, QWidget *parent = 0); ~iWxPvtSubPhase(); // 初始化 virtual void initUI(); // 设置关联 void setBindInfos(iWxPvtSubHeader* pSubHeader); // 获取结果 bool getAllResults(QMap& mapResults); // 获取类似Zg、Cg的页面的原始数据 bool getRawDataOf(QString s, VecFloat& x, VecFloat& y); bool getRawDataOf(QString s, VVecVariant& vvec); // 获取单个的Point(结果) bool getFixedPtOf(QString s, float& x, float& y); // 获取参数对应的Wx iWxPvtUtilItem* getWxPvtUtilItem(QString s); virtual bool savePvt(); // 文件标识 virtual QString getFilePvtTag(); private: void fillTabWx(); // 根据相类型决定多少Tab void dealwithItemNames(); // 具体的算法 void dealwithItemAlgos(); void dealwithItemAlgos_O(QString sPara); void dealwithItemAlgos_G(QString sPara); void dealwithItemAlgos_Gc(); void dealwithItemAlgos_W(QString sPara); void dealwithAlgoBindings(); //绑定算法类 iPvtParaItemGroup* getCurPvtGroup(); protected: virtual void paintEvent(QPaintEvent*); virtual void resizeEvent(QResizeEvent*); virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); private slots: void slotTabCurIndexChanged(int); // 这是首页Option触发 void slotOptionParaMethodChanged(QString sPara, QString sMethod); // 这是各个Item触发 void slotItemParaMethodChanged(QString sPara, QString sMethod); // 设置算法类的参数 void slotDealwithAlgoMembers(iPvtBase*& p); // 获取Pb压力值 void slotDealwithReferPb(QPointF& pt); // 从当前所有的信息中获取参数的值 bool getPvtParaValue(QString s, float& f); // 子项表格数据更改 void slotParaItemTableChanged(QString sPara); signals: // 子项表格数据更改 void sigParaItemTableDataChanged(QString s); private: // FluidType,这是主类型 QString m_sFluidType; // PhaseType,相类型 QString m_sPhaseType; // Tab QTabWidget* m_pTabWx; // TabWx的内容,第一项为iWxPvtUtilOption QStringList m_listItems; // SubHeader iWxPvtSubHeader* m_pSubHeader; // 算法类 QMap m_mapAlgos; };