#pragma once #include "Defines.h" #include "iXmlBaseItem.h" /// @brief 模型信息基础 class I_XMLMANAGER_EXPORT iModelInfoBase : public iXmlBaseItem { Q_OBJECT public: iModelInfoBase(QObject* parent = 0); ~iModelInfoBase(); // 把List分配到成员变量 // 输入开始的m_listValues中index,并且返回下一个index virtual int allocateInfo(int nIndex); // 备份恢复 virtual bool saveBk(); virtual bool restoreBk(); // 序列化 virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); // Super其实就是Parent,只是QObject本身有了Parent接口 // 没有直接用QObject的parent接口原因是,其child接口不太友好,不方便应用 //virtual iModelInfoBase* getSuper(); //virtual void setSuper(iModelInfoBase* p); protected: virtual void initXmlTags(); public: QString m_sAlias; //中文名称 QString m_sIcon; //图标 QString m_sFig; //图片 QString m_sTips; //备注 // 20171120添加 // m_listTags << "NotFitted" << "UseMode" << "ExtInfos"; bool m_bNotFitted; //不参与拟合,界面上灰色显示 ParaUseMode m_oUseMode;// 应用场合:ParaUseMode QStringList m_listExtInfos;//下拉内容 // 如: "封闭;气顶" "封闭;底水" // 请注意 半角;分割 // 目前仅仅针对聚合物有效, // 即聚合物中增加了 常规模型 的油藏类型 // 即 常规模型 对于 聚合物来讲,属于Brother bool m_bBrother; // 与其它参数的关系验证,如 Alias="二区半径" ValidateStr="GT:R1" QString m_sValidateStr; // 20240814增加层级支持,临时,不涉及序列化 //QVector m_vecChildren; //iModelInfoBase* m_pParent; }; typedef QVector vecModelInfoBasesPtr;