#pragma once #include "iModelInfoBase.h" /// @brief 参数所属类型区分,默认为2(double) enum ParaInfoType { PIT_Str = 0, //0:字符串(文本) Text属性 PIT_Int, //1:整形 PIT_Double, //2:Double数值 PIT_Img, //3:图像 Text属性 存放路径 PIT_Ba, //4:二进制 TODO PIT_DateTime, //5:时间类型 "Text"存放时间 PIT_Cbx, //6:下拉Cmb 具有"ItemOptions"属性 PIT_Seg, //7:Seg流动段模式 具有"SubItems"属性 PIT_SegEx, //8:Seg流动段模式,扩展模式 具有"SubItems"属性, // 并且以More按钮形式弹出可视化窗口 PIT_CbxClasp, //9:双下拉(扣型+公母),派生自 PIT_Cbx, // 具有"ItemOptions"+"ItemOptionExs"属性 PIT_UNKNOWN }; /// @brief 增加新的边界类型 enum BdyInfoType { BDY_Normal = 0, //0:常规边界参数,包括数值、以及类型(封闭、定压、无限大) BDY_PureType, //1:单纯的类型,底水、等,无数字 BDY_Not, //2:并非边界 BDY_UNKNOWN }; /// @brief 参数描述 class I_XMLMANAGER_EXPORT iParameter : public iModelInfoBase { public: iParameter(); ~iParameter(); // 把List分配到成员变量 // 输入开始的m_listValues中index,并且返回下一个index virtual int allocateInfo(int nIndex); // 写入xml virtual void writeInfo(QDomElement& e, QDomDocument &doc); // 判断是否sPara // sPara 参数名称,可以是 英文也可以是中文,软件会自动判断 virtual bool isParaOf(QString sPara); // 备份恢复 virtual bool saveBk(); virtual bool restoreBk(); // 序列化 virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); // 默认值显示 virtual QString getDefaultShow(); protected: virtual void initXmlTags(); public: // xml解析的数据项 QString m_sName; //英文名称(简称) QString m_sDesc; //英文描述 QString m_sUnit; //单位 double m_fDefault; //默认值 double m_fMax; //最大值 double m_fMin; //最小值 int m_nDigit; //小数位数,如果为0,则为整数 // 参数所属类型区分,默认为(double) ParaInfoType m_oParaType; // 增加新的边界类型,默认为(BDY_Not) BdyInfoType m_oBdyType; // 非xml解析 QString m_sAliasP; //父一级类别(别称),从外界传入 double m_fValue; //当前值,在对话框中调用时应用 // 只读20180409 bool m_bReadonly; }; typedef QVector vecParametersPtr; /// @brief 参数描述,特殊的扩展,此处仅仅是为了在构造时初始化成员变量 class I_XMLMANAGER_EXPORT iParameterSp : public iParameter { public: iParameterSp(); ~iParameterSp(); virtual void parseInfo(const QDomElement& e); void adjustPara(iParameter* p); // 序列化 virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); private: QString m_sSubItems; QString m_sSubItemsBk;//备份 };