DiagramDesigner/diagramCavas/include/graphicsItem/functionModelItem/graphicsFunctionModelItem.h

54 lines
1.8 KiB
C
Raw Normal View History

2026-03-23 11:06:17 +08:00
#ifndef GRAPHICSFUNCTIONMODELITEM_H
#define GRAPHICSFUNCTIONMODELITEM_H
2026-03-26 16:22:35 +08:00
#include "graphicsItem/graphicsBaseItem.h"
2026-03-23 11:06:17 +08:00
2026-04-08 14:17:47 +08:00
class BaseItemPropertyProxy;
2026-03-23 11:06:17 +08:00
class GraphicsFunctionModelItem : public GraphicsProjectModelItem //功能模item
{
Q_OBJECT
public:
Q_PROPERTY(QMap<QString,bool> PropertyVisible READ getMap WRITE setMap)
2026-03-23 11:06:17 +08:00
public:
GraphicsFunctionModelItem(QGraphicsItem *parent);
virtual ~GraphicsFunctionModelItem();
2026-04-08 14:17:47 +08:00
QMap<QString,bool> getMap(); //bool值为数据源指针类型
void setMap(QMap<QString,bool>);
2026-04-08 14:17:47 +08:00
void setPropertyProxy(BaseItemPropertyProxy* p) {_pPropertyProxy = p;}
BaseItemPropertyProxy* getPropertyProxy() {return _pPropertyProxy;}
2026-03-23 11:06:17 +08:00
protected:
virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*) override;
2026-04-08 14:17:47 +08:00
protected:
BaseItemPropertyProxy* _pPropertyProxy; //属性页代理
2026-03-23 11:06:17 +08:00
};
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<GraphicsBaseItem*> m_childItems;
int m_direction = 1; //组内布局0横1纵
int m_spacing = 0; //间距
int _groupType = 0; //组类型0联合(子item独立连接),1聚合(子item仅作展示)
};
#endif