#pragma once #include "iWxBase.h" #include "mModuleDefines.h" class ZxTableModel; class M_GUI_JOB_EXPORT iWxDataBasic : public iWxBase { Q_OBJECT public: explicit iWxDataBasic(QWidget *parent = 0); ~iWxDataBasic(); // 序列化 virtual void onSerialize(ZxSerializer* ser);// virtual void onDeserialize(ZxSerializer* ser); // 组织结果数据,注:vec不进行clear,由调用方自行clear virtual bool organizeResults(QVector& vec, QString sType); bool organizeResults_TV(QVector& vec, QString sType); virtual void initUI(); void setDataLayers(VVecVariant& vvec); // 标题标识 void setJobName(QString s); QString getJobName(); // 测试类型 QString getTestType(); PvtTestType getTestTypeEx(); // 井半径 float getWellR(); // 井间距离 float getInterferenceDis(); // 获取选中的层参数,支持多层 VVecVariant getLayerParameters(); // 流体性质 QString getFluidOption(); bool isPhaseS(); // 从各个Wx(m_vecWxDatas)中遍历查找 virtual bool setParaValue(QString sPara, double d); virtual bool getParaValue(QString sPara, double& d); // 返回所有参数,Key为英文ID virtual bool getAllParaValues(QMap& map, bool bOnlyFitted = false, bool bClearMap = true); //Pseudo void setMapParaBasic(QMap map); QMap getMapParaBasic(); void simuFluidMainChange(); //void simuJobTagChange(); //不显示标题 void setTagShow(bool bShowTag); signals: void sigFluidTypeChanged(QString s); // void sigJobTagChanged(QString s); public slots: virtual void slotGetJobTag(QString& s); private slots: void slotFluidMainChanged(QString s); void slotPhaseTypeChanged(); void slotTestTypeChanged(); // void slotJobTagChanged(); // 表格 void slotTableCellChanged(const QModelIndex&, const QModelIndex&); void slotTableRowChanged(QModelIndexList listOlds, QModelIndexList listNews, QModelIndex index); public: // // 序列化 // virtual void onSerialize(ZxSerializer* ser); // virtual void onDeserialize(ZxSerializer* ser); void runLayerDataChanged(); private: // 初始化 void initBase(); void initUI_TestType(); void initUI_FluidType(); void initUI_Layers(); QHBoxLayout* initUI_Tags(); // 初始储层数据获取 VVecVariant initLayerData(); // 相变化 void runPhaseTypeChanged(bool bByTestType = false); // 刷新图chart void refreshBy(QRadioButton* p); protected: virtual void paintEvent(QPaintEvent *); private: // GroupBox QGroupBox* m_pGbxTestType; QGroupBox* m_pGbxFluidType; QGroupBox* m_pGbxLayerParas; QRadioButton* m_pRadioPhaseS; QRadioButton* m_pRadioPhaseM; QComboBox* m_pCbxFluidType; // 测试类型 QRadioButton* m_pRadioStandard; QRadioButton* m_pRadioInterference; QRadioButton* m_pRadioMiniFrac; // 标题 QLineEdit* m_pTbxTag; //ZXF不布局标题试井设计中不需要标题 bool m_bShowTag; // 储层数据 ZxTableModel* m_pDataModel; VecVariant m_vecRawRowData; // 储层参数列,含 储层名称 QStringList m_listResParas; QStringList m_listResParaCHs; QStringList m_listResUnits; VecInt m_vecDigits; //Pseudo 为了把地层压力传给FluidSub QMap m_mapBasicPara; };