#pragma once #include "iGridRowItemSub.h" // 7:Seg模式 具有"SubItems"属性,如裂缝条数 class iParameterSeg; class X_GUI_GRIDPTY_EXPORT iGridRowItemSubSeg : public iGridRowItemSub { Q_OBJECT public: explicit iGridRowItemSubSeg(iGridRowItem* pParent = nullptr); ~iGridRowItemSubSeg(); public: // 序列化 virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); // 控件 virtual void initEditor(); virtual void configEditor(); virtual void initOtherEditors(); // 范围 virtual void setBounds(QRectF& rt);//全局 virtual QRectF getRightBounds_Main();//右 // 刷新 // n:段数 virtual void freshSubChild(int n, bool bBySegCount); // 对于Editor的范围及颜色管理 virtual void checkAndClr(); virtual QString getEditorCss(bool bValid); virtual bool isInputOk(); // 外界传递 virtual bool setCurValue(QVariant o); virtual QVariant getCurValue(); virtual void makesureChildren(int nTargetCount); //在反序列化时如果发现孩子个数不一致,则需要确保 /// @brief 在过程中createRowChildOf允许根据当前数据进行调整某些项 /// @param pItemChild: (in) 待调整的项 /// @param sPara: (in) 子项,具体可能需要加序号标识 /// @param nRowIndex: (in) 当前第几行/层 /// @param nColIndex: (in) 当前行/层的第几个参数,默认为-1,其实与sPara是对应的 virtual bool adjustValueOfRowChild(iGridRowItem* pItemChild, \ const QString sPara, \ int nRowIndex, \ int nColIndex = -1); /// @brief 在过程中createRowChildOf允许调整内部标识 /// @param sTagInner: (in&out) TagInner /// @param sNameInner: (in&out) NameInner /// @param nRowIndex: (in) 当前第几行/层 virtual bool adjustTagOfRowChild(QString& sTagInner, \ QString& sNameInner, \ int nRowIndex); /// @brief 在过程中createRowChildOf允许调整内部标识 /// @param sTagInner: (in&out) TagInner /// @param sNameInner: (in&out) NameInner /// @param nRowIndex: (in) 当前第几行/层 virtual bool adjustTagOfRowGroup(QString& sTagInner, \ int nRowIndex); public slots: virtual void slotSubCountChanged(int n); protected: // 结果 virtual QVariant getInfoRight(); virtual QString getInfoUnit(); };