#ifndef GRAPHICSFUNCTIONMODELITEM_H #define GRAPHICSFUNCTIONMODELITEM_H #include "graphicsItem/graphicsBaseItem.h" class BaseItemPropertyProxy; class GraphicsFunctionModelItem : public GraphicsProjectModelItem //功能模item { Q_OBJECT public: Q_PROPERTY(QMap PropertyVisible READ getMap WRITE setMap) public: GraphicsFunctionModelItem(QGraphicsItem *parent); virtual ~GraphicsFunctionModelItem(); QMap getMap(); //bool值为数据源指针类型 void setMap(QMap); void setPropertyProxy(BaseItemPropertyProxy* p) {_pPropertyProxy = p;} BaseItemPropertyProxy* getPropertyProxy() {return _pPropertyProxy;} protected: virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*) override; protected: BaseItemPropertyProxy* _pPropertyProxy; //属性页代理 }; class GraphicsFunctionModelGroup : public GraphicsFunctionModelItem //功能模group { Q_OBJECT public: GraphicsFunctionModelGroup(QGraphicsItem *parent); virtual ~GraphicsFunctionModelGroup(); virtual void addItem(GraphicsFunctionModelItem* item); virtual void updateLayout(); virtual void setLayout(int n) {m_direction = n;} virtual void setGroupType(int n) {_groupType = n;} virtual int getGroupType() {return _groupType;} virtual void setSpacing(qreal spacing) { if (m_spacing != spacing) { m_spacing = spacing; updateLayout(); } } QRectF updateBoundRect(); protected: QList m_childItems; int m_direction = 1; //组内布局,0横1纵 int m_spacing = 0; //间距 int _groupType = 0; //组类型,0联合(子item独立连接),1聚合(子item仅作展示) }; #endif