#pragma once #include "iGridRowItemSub.h" // 流动段数、产液段数 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();//右 // 关联绑定的Item,长度 virtual void setLenAll(double d); virtual void setBrotherItem(iGridRowItem* p); // 关联绑定的产量 virtual void setNqQAll(double d); // 刷新 // 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(); public slots: virtual void slotSubCountChanged(int n); virtual void slotItemLenthChanged(QString, QVariant); protected: // 对于需要调整的,计算其默认的位置 virtual VecDouble calDefaultPoss(int n, double dLenAll); // 结果 virtual QVariant getInfoRight(); virtual QString getInfoUnit(); protected: iGridRowItem* m_pBrotherItem; //关联的长度Item double m_dLenAll; double m_dNqAll; };