DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DA::DAAbstractNodeGraphicsItem类 参考

这是节点的基类,workflow所有节点都继承此类 作为一个节点的QGraphicsItem,此item应该由DAAbstractNode创建 更多...

#include <DAAbstractNodeGraphicsItem.h>

类 DA::DAAbstractNodeGraphicsItem 继承关系图:
DA::DAGraphicsResizeableItem DA::DAGraphicsItem DA::DAXMLFileInterface DA::DAStandardNodeInputOutputGraphicsItem DA::DAStandardNodePixmapGraphicsItem DA::DAStandardNodeRectGraphicsItem DA::DAStandardNodeSvgGraphicsItem DA::DAStandardNodeTextGraphicsItem DA::DAStandardNodeWidgetGraphicsItem DA::DAStandardNodeConstValueGraphicsItem

class  PrivateData
 

Public 类型

enum  { Type = DA::ItemType_GraphicsNodeItem }
 
enum  LinkPointShowType { LinkPointAlwayShow , LinkPointShowOnHover , LinkPointShowOnSelect }
 连接点显示状态 更多...
 
enum  LinkPointLocation { LinkPointLocationOnLeftSide , LinkPointLocationOnTopSide , LinkPointLocationOnRightSide , LinkPointLocationOnBottomSide }
 连接点的位置 更多...
 
- Public 类型 继承自 DA::DAGraphicsResizeableItem
enum  ControlType {
  NotUnderAnyControlType = 0 , ControlPointTopLeft , ControlPointTopMid , ControlPointTopRight ,
  ControlPointRightMid , ControlPointBottomRight , ControlPointBottomMid , ControlPointBottomLeft ,
  ControlPointLeftMid , ControlLineLeft , ControlLineTop , ControlLineRight ,
  ControlLineBottom
}
 表征控制点和控制线的类型 更多...
 
enum  { Type = DA::ItemType_DAGraphicsResizeableItem }
 适用qgraphicsitem_cast
 
- Public 类型 继承自 DA::DAGraphicsItem
enum  { Type = DA::ItemType_DAGraphicsItem }
 

Public 成员函数

int type () const override
 
 DAAbstractNodeGraphicsItem (DAAbstractNode *n, QGraphicsItem *p=nullptr)
 
DAAbstractNoderawNode ()
 获取item对应的node
 
const DAAbstractNoderawNode () const
 
DAAbstractNode::SharedPointer node () const
 
void setLinkPointShowType (LinkPointShowType t)
 设置连接点的显示属性
 
LinkPointShowType getLinkPointShowType () const
 
void setLinkPointLocation (DANodeLinkPoint::Way way, LinkPointLocation l)
 设置连接点的位置
 
LinkPointLocation getLinkPointLocation (DANodeLinkPoint::Way way) const
 获取连接点的位置
 
QString getNodeName () const
 
QIcon getIcon () const
 
void setIcon (const QIcon &icon)
 设置图标
 
const DANodeMetaDatametaData () const
 获取节点元数据
 
DANodeMetaDatametaData ()
 获取节点元数据
 
QList< DANodeLinkPointgetLinkPoints () const
 获取连接点群
 
QList< DANodeLinkPointgetOutputLinkPoints () const
 获取所有输出的连接点群
 
QList< DANodeLinkPointgetInputLinkPoints () const
 获取所有输入的连接点群
 
DANodeLinkPoint getLinkPoint (const QString &name) const
 获取连接点
 
DANodeLinkPoint getInputLinkPoint (const QString &name) const
 
DANodeLinkPoint getOutputLinkPoint (const QString &name) const
 
bool setLinkPointDirection (const QString &name, AspectDirection d)
 设置linkpoint的方向,linkpoint 方向设置只会影响显示,不会影响工作流的链接
 
bool isHaveLinkPoint (const DANodeLinkPoint &pl) const
 判断是否存在连接点,仅判断way和name,不对绘图方面进行判断
 
bool isLinkPointLinked (const DANodeLinkPoint &pl)
 判断连接点是否已经链接
 
void paintLinkPoints (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
 绘制默认连接点
 
virtual DAAbstractNodeWidgetgetNodeWidget ()
 获取节点对应的设置窗口
 
void setNodePalette (const DANodePalette &pl)
 设置调色板
 
const DANodePalettegetNodePalette () const
 获取调色板,如果没有设置内部调色板,会返回全局调色板
 
void setLinkPointDrawDelegate (DANodeLinkPointDrawDelegate *delegate)
 设置连接点绘制的代理,如果不设置会有一个默认代理
 
DANodeLinkPointDrawDelegategetLinkPointDrawDelegate () const
 获取连接点绘图代理
 
virtual DANodeLinkPoint getLinkPointByPos (const QPointF &p, DANodeLinkPoint::Way way=DANodeLinkPoint::Output) const
 通过位置获取linkpoint,如果没有返回一个invalid的DANodeLinkPoint
 
void updateLinkPointPos ()
 更新连接点位置,在bodyBoundingRect改变之后调用
 
void updateLinkItems ()
 更新链接到这个item的linkitem
 
void showLinkPointText (bool on)
 显示连接点的文字
 
bool isShowLinkPointText () const
 
QList< DAAbstractNodeLinkGraphicsItem * > getLinkItems () const
 获取当前链接上的LinkGraphicsItem
 
QList< DAAbstractNodeLinkGraphicsItem * > getInputLinkItems () const
 获取所有链接进来这个节点的连接线
 
QList< DAAbstractNodeLinkGraphicsItem * > getOutputLinkItems () const
 获取这个节点链接出去的所有连接线
 
QList< DAAbstractNodeGraphicsItem * > getInputItems () const
 获取所有链接到这个节点的节点
 
QList< DAAbstractNodeGraphicsItem * > getOutputItems () const
 获取这个节点链接出去的所有节点
 
QList< std::pair< DAAbstractNodeGraphicsItem *, DANodeLinkPoint > > getInputInfos () const
 获取输入的信息
 
QList< std::pair< DAAbstractNodeGraphicsItem *, DANodeLinkPoint > > getOutputInfos () const
 获取输出的信息
 
QList< DAAbstractNodeGraphicsItem * > getLinkChain () const
 获取链接链路,上所有的item
 
QList< DAAbstractNodeGraphicsItem * > getOutPutLinkChain () const
 获取输出链接链路的所有节点
 
QList< DAAbstractNodeGraphicsItem * > getInPutLinkChain () const
 获取输入链接链路的所有节点
 
QList< DAAbstractNodeLinkGraphicsItem * > getLinkItem (const QString &name) const
 
virtual bool saveToXml (QDomDocument *doc, QDomElement *parentElement, const QVersionNumber &ver) const override
 保存到xml中
 
virtual bool loadFromXml (const QDomElement *itemElement, const QVersionNumber &ver) override
 从xml中加载
 
virtual DAAbstractNodeLinkGraphicsItemcreateLinkItem (const DA::DANodeLinkPoint &lp)
 创建连接,继承此函数可以生成连接,如果返回nullptr,scene将不会进行连接
 
virtual DAAbstractNodeLinkGraphicsItemlinkTo (const DA::DANodeLinkPoint &fromPoint, DAAbstractNodeGraphicsItem *toItem, const DA::DANodeLinkPoint &toPoint)
 从fromPoint链接到toItem的toPoint点
 
DAAbstractNodeLinkGraphicsItemlinkToByName (const QString &fromPointName, DAAbstractNodeGraphicsItem *toItem, const QString &toPointName)
 从fromPointName链接到toItem的toPointName点
 
virtual void setBodySize (const QSizeF &s) override
 设置尺寸,这里要随之更新连接点
 
void resetLinkPoint ()
 重置链接点,会把原来的信息清空,包括已经链接的item
 
virtual bool acceptDragOn (DANodeMetaData mime, const QPointF &scenePos)
 是否接受DANodeMetaData拖曳在此节点上
 
virtual bool drop (DANodeMetaData mime, const QPointF &scenePos)
 拖放
 
virtual void tryLinkOnItemPos (const QPointF &p, DAAbstractNodeLinkGraphicsItem *linkItem, DANodeLinkPoint::Way way)
 此函数是在连接线点击item时调用的回调,无论点击的位置是否存在连接点,都会调用此回调
 
virtual void finishLink (const DANodeLinkPoint &p, DAAbstractNodeLinkGraphicsItem *linkItem, DANodeLinkPoint::Way way, bool isSuccess)
 链接结束的回调,无论有没有成功都会调用此回调函数
 
virtual void detachLink (const DANodeLinkPoint &p, DAAbstractNodeLinkGraphicsItem *linkItem, DANodeLinkPoint::Way way)
 
virtual void prepareNodeNameChanged (const QString &name)
 节点名字改变准备函数,通过此函数,让节点对名字进行重新绘制
 
virtual void groupPositionChanged (const QPointF &pos) override
 分组位置发生了变化
 
- Public 成员函数 继承自 DA::DAGraphicsResizeableItem
 DAGraphicsResizeableItem (QGraphicsItem *parent=nullptr)
 
int type () const override
 
QRectF boundingRect () const override
 DAGraphicsResizeableItem的boundingRect会根据getSize尺寸进行计算
 
QPainterPath shape () const override
 用户不要继承此shape函数,而是继承bodyShape函数
 
void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
 用户不要继承此paint函数,而是继承paintBody函数
 
QSizeF testBodySize (const QSizeF &s)
 测试一下setBodySize之后getBodySize能得到的尺寸
 
QRectF getBodyRect () const
 绘图的区域
 
QSizeF getBodySize () const
 获取尺寸
 
QRectF getBodyControlRect () const
 获取body包含控制窗口大小,就是在改变尺寸时包含那8个控制点的最大尺寸
 
void setBodyMinimumSize (const QSizeF &s)
 设置最小尺寸
 
void setBodyMaximumSize (const QSizeF &s)
 设置最大尺寸
 
QSizeF getBodyMinimumSize () const
 获取最小尺寸
 
QSizeF getBodyMaximumSize () const
 获取最大尺寸
 
void setControlerSize (const QSizeF &s)
 获取控制器的大小
 
QSizeF getControlerSize () const
 
void setEnableResize (bool on)
 设置是否Delegate可用
 
bool isResizable () const
 判断是否允许
 
void setBodyPos (const QPointF &p)
 对setPos的封装
 
void setBodyScenePos (const QPointF &p)
 
QPointF getBodyCenterPoint () const
 返回body的中心点,此坐标系为item坐标系
 
QPointF getBodyCenterPos () const
 获取body中心的位置
 
void setBodyCenterPos (const QPointF &p)
 setBodyCenterPos
 
void setAutoCenterTransformOriginPoint (bool on=true)
 设置TransformOriginPoint自动设置为bodysize的中心,否则为用户自己指定
 
void updateTransformOriginPoint ()
 更新TransformOriginPoint
 
QPair< QPointF, QSizeF > doItemResize (const QPointF &mousescenePos)
 执行尺寸的改变
 
virtual QPainterPath getBodyShape () const
 获取绘图的shape
 
virtual void paintSelectedBorder (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
 绘制resize边框
 
virtual void paintResizeControlPoints (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
 绘制resize控制点
 
virtual void paintBackground (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget, const QRectF &bodyRect)
 绘制背景
 
virtual void paintBorder (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget, const QRectF &bodyRect)
 绘制边框
 
virtual void paintBody (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget, const QRectF &bodyRect)=0
 
virtual QRectF controlPointRect (ControlType tp, const QRectF &bodyRect) const
 生成control points
 
virtual QSizeF controlPointSize () const
 控制点的大小
 
void prepareControlInfoChange ()
 在尺寸发生变化后调用,刷新控制点的位置
 
ControlType getControlPointByPos (const QPointF &pos) const
 测试位置是否在控制点上,如果是返回控制点的类型,如果不在返回NotAtControlPoint
 
bool isResizing () const
 判断当前是否处于调整大小的状态中
 
bool isSnapToGrid () const
 是否允许对齐网格
 
QSize getGridSize () const
 获取网格尺寸
 
- Public 成员函数 继承自 DA::DAGraphicsItem
 DAGraphicsItem (QGraphicsItem *parent=nullptr)
 
void setBorderPen (const QPen &p)
 设置边框画笔
 
QPen getBorderPen () const
 获取当前边框画笔
 
void setShowBorder (bool on)
 设置显示边框
 
bool isShowBorder () const
 是否显示边框
 
void setSelectable (bool on=true)
 设置是否可选中
 
bool isSelectable () const
 判断可否被选中
 
void setMovable (bool on=true)
 设置为是否可移动
 
bool isMovable () const
 判断是否可以移动
 
void setBackgroundBrush (const QBrush &b)
 设置背景
 
QBrush getBackgroundBrush () const
 获取背景
 
void enableShowBackground (bool on)
 设置显示背景
 
bool isShowBackground () const
 是否显示背景
 
void setScenePos (const QPointF &p)
 
void setScenePos (qreal x, qreal y)
 
uint64_t getItemID () const
 
void setItemID (uint64_t id)
 
bool isSceneReadOnly () const
 判断当前场景是否为只读模式,只读模式不允许操作
 

Protected 成员函数

virtual QVariant itemChange (QGraphicsItem::GraphicsItemChange change, const QVariant &value) override
 处理一些联动事件,如和FCAbstractNodeLinkGraphicsItem的联动
 
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event) override
 鼠标按下
 
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event) override
 
virtual void hoverEnterEvent (QGraphicsSceneHoverEvent *event) override
 
virtual void hoverMoveEvent (QGraphicsSceneHoverEvent *event) override
 
virtual void hoverLeaveEvent (QGraphicsSceneHoverEvent *event) override
 
bool recordLinkInfo (DAAbstractNodeLinkGraphicsItem *link, const DANodeLinkPoint &pl)
 此函数在DAAbstractNodeLinkGraphicsItem的attachedTo/From过程中调用
 
bool removeLinkInfo (DAAbstractNodeLinkGraphicsItem *link, const DANodeLinkPoint &pl)
 连接的link在销毁时调用,把item记录的link信息消除
 
virtual QList< DANodeLinkPointgenerateLinkPoint () const
 此函数根据DAAbstractNode的输入输出来生成默认的连接点
 
void addLinkPoint (const DANodeLinkPoint &lp)
 加入新的连接点
 
void setLinkPoint (const QString &name, const DANodeLinkPoint &newLinkpoint)
 更改连接点的信息,name是连接点名字,如果有重名,只修改第一个查找到的名字的连接点
 
- Protected 成员函数 继承自 DA::DAGraphicsResizeableItem
void changeBodySize (const QSizeF &s)
 此函数和setBodySize不同,setBodySize是虚函数,且会校验尺寸的最大最小范围,此函数不进行校验
 
virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event) override
 
QVariant itemChange (QGraphicsItem::GraphicsItemChange change, const QVariant &value) override
 DAGraphicsResizeableItem::itemChange
 
- Protected 成员函数 继承自 DA::DAGraphicsItem
DAGraphicsScenedaScene () const
 

友元

class DAAbstractNodeLinkGraphicsItem
 
class DAAbstractNode
 

额外继承的成员函数

- 信号 继承自 DA::DAGraphicsResizeableItem
void itemBodySizeChanged (const QSizeF &oldsize, const QSizeF &newsize)
 itemBodySizeChanged
 
- 静态 Public 成员函数 继承自 DA::DAGraphicsItem
static DAGraphicsItemcast (QGraphicsItem *i)
 dynamic_cast为DAGraphicsItem
 
- 静态 Public 成员函数 继承自 DA::DAXMLFileInterface
template<typename std_container_like >
static QDomElement makeElement (const std_container_like &v, const QString &tagName, QDomDocument *doc)
 生成一个文本
 
template<typename std_container_like >
static bool loadElement (std_container_like &v, const QDomElement *ele)
 加载文本
 
static QDomElement makeSysInfoElement (const QString &tagName, QDomDocument *doc)
 
static void appendElementWithText (QDomElement &parent, const QString &tagName, const QString &text, QDomDocument *doc)
 在parent下,插入一个tag,tag下包含文字text
 

详细描述

这是节点的基类,workflow所有节点都继承此类 作为一个节点的QGraphicsItem,此item应该由DAAbstractNode创建

此函数继承DAGraphicsResizeableItem 需要重载 DAGraphicsResizeableItem::paintBody

以下是paintBody的例子:

void XXNodeGraphicsItem::paintBody(QPainter* painter,const QStyleOptionGraphicsItem* option,QWidget* widget,const QRectF& bodyRect)
{
painter->setPen(getBorderPen());
painter->setBrush(getBackgroundBrush());
painter->drawRect(bodyRect);
paintLinkPoints(painter, option, widget);
}
void paintLinkPoints(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
绘制默认连接点
Definition DAAbstractNodeGraphicsItem.cpp:415
QPen getBorderPen() const
获取当前边框画笔
Definition DAGraphicsItem.cpp:186
QBrush getBackgroundBrush() const
获取背景
Definition DAGraphicsItem.cpp:258
注解
这里有个限制,一个DANodeLinkPoint 只能对应一个node的input或output,无法实现一个input对应多个DANodeLinkPoint
参见
DAGraphicsResizeableItem DAAbstractNodeLinkGraphicsItem DANodeLinkPoint

成员枚举类型说明

◆ LinkPointLocation

连接点的位置

枚举值
LinkPointLocationOnLeftSide 

连接点位于左边(进口连接点默认左边)

LinkPointLocationOnTopSide 

连接点位于上边

LinkPointLocationOnRightSide 

连接点位于右边(出口连接点默认右边)

LinkPointLocationOnBottomSide 

连接点位于下边

◆ LinkPointShowType

连接点显示状态

枚举值
LinkPointAlwayShow 

一直显示

LinkPointShowOnHover 

处于焦点或者选中才显示

LinkPointShowOnSelect 

只有选中时才显示

成员函数说明

◆ acceptDragOn()

bool DA::DAAbstractNodeGraphicsItem::acceptDragOn ( DANodeMetaData  mime,
const QPointF &  scenePos 
)
virtual

是否接受DANodeMetaData拖曳在此节点上

如果此函数返回true,说明这个节点接受一个新节点拖曳到此节点上,这时候drop函数就生效

acceptDragOn接口和drop接口是为了实现如下场景:

一个新节点拖曳在旧节点上实现替换或者链接操作

参数
mime
返回

◆ addLinkPoint()

void DA::DAAbstractNodeGraphicsItem::addLinkPoint ( const DANodeLinkPoint lp)
protected

加入新的连接点

参数
lp
注解
某些场合,加入新的连接点需要刷新一下连接点位置
参见
updateLinkPointPos

◆ createLinkItem()

DAAbstractNodeLinkGraphicsItem * DA::DAAbstractNodeGraphicsItem::createLinkItem ( const DA::DANodeLinkPoint lp)
virtual

创建连接,继承此函数可以生成连接,如果返回nullptr,scene将不会进行连接

默认使用DAStandardNodeLinkGraphicsItem来进行连接的创建,如果需要自定义连接,可以继承此函数

此函数创建的连接默认已经连接上lp

如果重写了自己的link,需要如下操作:

DAAbstractNodeLinkGraphicsItem* MyNodeItem::createLinkItem(const DANodeLinkPoint& lp)
{
Q_UNUSED(lp);
return new MyLinkGraphicsItem();
}
绘制连接线的item
Definition DAAbstractNodeLinkGraphicsItem.h:20
用于表征连节点信息的数据
Definition DANodeLinkPoint.h:13
注解
返回的link无需attach,attach过程由scene负责
参数
lp连接点,可以根据不同连接点返回不同的连接线
返回

◆ drop()

bool DA::DAAbstractNodeGraphicsItem::drop ( DANodeMetaData  mime,
const QPointF &  scenePos 
)
virtual

拖放

参数
mime
返回

◆ finishLink()

void DA::DAAbstractNodeGraphicsItem::finishLink ( const DANodeLinkPoint p,
DAAbstractNodeLinkGraphicsItem linkItem,
DANodeLinkPoint::Way  way,
bool  isSuccess 
)
virtual

链接结束的回调,无论有没有成功都会调用此回调函数

参数
p
linkItem
way判断是输入还是输出,如果way=Input,就是输入过程的点击(被连接),way=Output,就是输出过程的点击(链接出去)
isSuccess链接成功或失败

◆ generateLinkPoint()

QList< DANodeLinkPoint > DA::DAAbstractNodeGraphicsItem::generateLinkPoint ( ) const
protectedvirtual

此函数根据DAAbstractNode的输入输出来生成默认的连接点

会调用

参见
DAAbstractNode::inputKeys 获取所有的输入参数, 调用
DAAbstractNode::outputKeys 判断是否生成输出节点

默认所有输入位于左边,所有输出位于右边 此函数会调用

参见
updateLinkPointPos 来更新点位置

连接点的方向属性仅仅是为了辅助绘制常规连接点,针对一些特别的连接点, 可以通过

参见
DANodeLinkPointDrawDelegate 绘制任意形状的连接点
返回

◆ getInputInfos()

QList< std::pair< DAAbstractNodeGraphicsItem *, DANodeLinkPoint > > DA::DAAbstractNodeGraphicsItem::getInputInfos ( ) const

获取输入的信息

返回

◆ getInputItems()

QList< DAAbstractNodeGraphicsItem * > DA::DAAbstractNodeGraphicsItem::getInputItems ( ) const

获取所有链接到这个节点的节点

返回
将会去重,也就返回的内容不会有重复

◆ getInPutLinkChain()

QList< DAAbstractNodeGraphicsItem * > DA::DAAbstractNodeGraphicsItem::getInPutLinkChain ( ) const

获取输入链接链路的所有节点

   F------>this
        |

A->B->C->D–

如上图,返回{A,B,C,D,F},注意是乱序

返回
返回输入链路上所有的item,这个链路如果有环,item不会重复出现,返回的链路不会包含自身 @node 返回节点无序

◆ getInputLinkItems()

QList< DAAbstractNodeLinkGraphicsItem * > DA::DAAbstractNodeGraphicsItem::getInputLinkItems ( ) const

获取所有链接进来这个节点的连接线

返回
将会去重,也就返回的内容不会有重复

◆ getInputLinkPoints()

QList< DANodeLinkPoint > DA::DAAbstractNodeGraphicsItem::getInputLinkPoints ( ) const

获取所有输入的连接点群

返回

◆ getLinkChain()

QList< DAAbstractNodeGraphicsItem * > DA::DAAbstractNodeGraphicsItem::getLinkChain ( ) const

获取链接链路,上所有的item

这个链路如果有环,item不会重复出现,返回的链路不会包含自身

  F

  |

A->B->C->D

如上图,返回{A,B,C,D,F},注意是乱序

返回
整个链路的item,注意是乱序

◆ getLinkItems()

QList< DAAbstractNodeLinkGraphicsItem * > DA::DAAbstractNodeGraphicsItem::getLinkItems ( ) const

获取当前链接上的LinkGraphicsItem

返回

◆ getLinkPoint()

DANodeLinkPoint DA::DAAbstractNodeGraphicsItem::getLinkPoint ( const QString &  name) const

获取连接点

参数
name
返回

◆ getLinkPointByPos()

DANodeLinkPoint DA::DAAbstractNodeGraphicsItem::getLinkPointByPos ( const QPointF &  p,
DANodeLinkPoint::Way  way = DANodeLinkPoint::Output 
) const
virtual

通过位置获取linkpoint,如果没有返回一个invalid的DANodeLinkPoint

此函数作为虚函数,是scene判断是否点击到了链接点的关键函数,如果连接点是固定的, 是不需要继承此函数的,但对于一些特殊的连接点(如不固定的)就需要通过此函数来获取

此函数默认是调用

参见
DANodeLinkPointDrawDelegate
DANodeLinkPointDrawDelegate::getlinkPointRect
参数
p
返回
如果返回一个默认构造的DANodeLinkPoint,说明没在连接点上

◆ getLinkPointDrawDelegate()

DANodeLinkPointDrawDelegate * DA::DAAbstractNodeGraphicsItem::getLinkPointDrawDelegate ( ) const

获取连接点绘图代理

返回

◆ getLinkPointLocation()

DAAbstractNodeGraphicsItem::LinkPointLocation DA::DAAbstractNodeGraphicsItem::getLinkPointLocation ( DANodeLinkPoint::Way  way) const

获取连接点的位置

返回

◆ getLinkPoints()

QList< DANodeLinkPoint > DA::DAAbstractNodeGraphicsItem::getLinkPoints ( ) const

获取连接点群

返回

◆ getNodePalette()

const DANodePalette & DA::DAAbstractNodeGraphicsItem::getNodePalette ( ) const

获取调色板,如果没有设置内部调色板,会返回全局调色板

返回

◆ getNodeWidget()

DAAbstractNodeWidget * DA::DAAbstractNodeGraphicsItem::getNodeWidget ( )
virtual

获取节点对应的设置窗口

返回

◆ getOutputInfos()

QList< std::pair< DAAbstractNodeGraphicsItem *, DANodeLinkPoint > > DA::DAAbstractNodeGraphicsItem::getOutputInfos ( ) const

获取输出的信息

返回

◆ getOutputItems()

QList< DAAbstractNodeGraphicsItem * > DA::DAAbstractNodeGraphicsItem::getOutputItems ( ) const

获取这个节点链接出去的所有节点

返回
将会去重,也就返回的内容不会有重复

◆ getOutPutLinkChain()

QList< DAAbstractNodeGraphicsItem * > DA::DAAbstractNodeGraphicsItem::getOutPutLinkChain ( ) const

获取输出链接链路的所有节点

   F

   |

this-> A->B->C->D

如上图,返回{A,B,C,D,F},注意是乱序

返回
返回输出链路上所有的item,这个链路如果有环,item不会重复出现,返回的链路不会包含自身 @node 返回节点无序

◆ getOutputLinkItems()

QList< DAAbstractNodeLinkGraphicsItem * > DA::DAAbstractNodeGraphicsItem::getOutputLinkItems ( ) const

获取这个节点链接出去的所有连接线

返回
将会去重,也就返回的内容不会有重复

◆ getOutputLinkPoints()

QList< DANodeLinkPoint > DA::DAAbstractNodeGraphicsItem::getOutputLinkPoints ( ) const

获取所有输出的连接点群

返回

◆ groupPositionChanged()

void DA::DAAbstractNodeGraphicsItem::groupPositionChanged ( const QPointF &  pos)
overridevirtual

分组位置发生了变化

分组位置发生了变化也要刷新链接

参数
pos

重载 DA::DAGraphicsItem .

◆ hoverEnterEvent()

void DA::DAAbstractNodeGraphicsItem::hoverEnterEvent ( QGraphicsSceneHoverEvent *  event)
overrideprotectedvirtual

◆ hoverLeaveEvent()

void DA::DAAbstractNodeGraphicsItem::hoverLeaveEvent ( QGraphicsSceneHoverEvent *  event)
overrideprotectedvirtual

◆ hoverMoveEvent()

void DA::DAAbstractNodeGraphicsItem::hoverMoveEvent ( QGraphicsSceneHoverEvent *  event)
overrideprotectedvirtual

◆ isHaveLinkPoint()

bool DA::DAAbstractNodeGraphicsItem::isHaveLinkPoint ( const DANodeLinkPoint pl) const

判断是否存在连接点,仅判断way和name,不对绘图方面进行判断

参数
pl
返回

◆ isLinkPointLinked()

bool DA::DAAbstractNodeGraphicsItem::isLinkPointLinked ( const DANodeLinkPoint pl)

判断连接点是否已经链接

参数
pl
返回

◆ itemChange()

QVariant DA::DAAbstractNodeGraphicsItem::itemChange ( QGraphicsItem::GraphicsItemChange  change,
const QVariant &  value 
)
overrideprotectedvirtual

处理一些联动事件,如和FCAbstractNodeLinkGraphicsItem的联动

参数
change
value
返回

重载 DA::DAGraphicsItem .

DA::DAStandardNodeSvgGraphicsItem , 以及 DA::DAStandardNodePixmapGraphicsItem 重载.

◆ linkTo()

DAAbstractNodeLinkGraphicsItem * DA::DAAbstractNodeGraphicsItem::linkTo ( const DA::DANodeLinkPoint fromPoint,
DAAbstractNodeGraphicsItem toItem,
const DA::DANodeLinkPoint toPoint 
)
virtual

从fromPoint链接到toItem的toPoint点

注解
此函数会调用
参见
createLinkItem 如果重写此函数,建议调用DAAbstractNodeGraphicsItem::linkTo
参数
fromPoint出口链接点
toItem链接到的item
toPoint链接到的链接点
返回
如果链接失败返回nullptr

◆ linkToByName()

DAAbstractNodeLinkGraphicsItem * DA::DAAbstractNodeGraphicsItem::linkToByName ( const QString &  fromPointName,
DAAbstractNodeGraphicsItem toItem,
const QString &  toPointName 
)

从fromPointName链接到toItem的toPointName点

此函数最终调用的是

const DANodeLinkPoint& toPoint)
这是节点的基类,workflow所有节点都继承此类 作为一个节点的QGraphicsItem,此item应该由DAAbstractNode创建
Definition DAAbstractNodeGraphicsItem.h:47
virtual DAAbstractNodeLinkGraphicsItem * linkTo(const DA::DANodeLinkPoint &fromPoint, DAAbstractNodeGraphicsItem *toItem, const DA::DANodeLinkPoint &toPoint)
从fromPoint链接到toItem的toPoint点
Definition DAAbstractNodeGraphicsItem.cpp:919

因此重写上面虚函数即可

参数
fromPointName
toItem
toPointName
返回
如果链接失败返回nullptr

◆ loadFromXml()

bool DA::DAAbstractNodeGraphicsItem::loadFromXml ( const QDomElement *  parentElement,
const QVersionNumber &  ver 
)
overridevirtual

从xml中加载

参数
itemElement
返回

重载 DA::DAGraphicsResizeableItem .

DA::DAStandardNodePixmapGraphicsItem 重载.

◆ metaData() [1/2]

DANodeMetaData & DA::DAAbstractNodeGraphicsItem::metaData ( )

获取节点元数据

返回

◆ metaData() [2/2]

const DANodeMetaData & DA::DAAbstractNodeGraphicsItem::metaData ( ) const

获取节点元数据

返回

◆ mousePressEvent()

void DA::DAAbstractNodeGraphicsItem::mousePressEvent ( QGraphicsSceneMouseEvent *  event)
overrideprotectedvirtual

鼠标按下

参数
event

重载 DA::DAGraphicsResizeableItem .

◆ mouseReleaseEvent()

void DA::DAAbstractNodeGraphicsItem::mouseReleaseEvent ( QGraphicsSceneMouseEvent *  event)
overrideprotectedvirtual

◆ paintLinkPoints()

void DA::DAAbstractNodeGraphicsItem::paintLinkPoints ( QPainter *  painter,
const QStyleOptionGraphicsItem *  option,
QWidget *  widget 
)

绘制默认连接点

在paintbody中调用此函数,用于绘制连接点

此函数会调用代理的paintLinkPoints函数

◆ prepareNodeNameChanged()

void DA::DAAbstractNodeGraphicsItem::prepareNodeNameChanged ( const QString &  name)
virtual

节点名字改变准备函数,通过此函数,让节点对名字进行重新绘制

参数
name
注解
此函数仅仅会在节点名字变化的时候才会触发

DA::DAStandardNodePixmapGraphicsItem , 以及 DA::DAStandardNodeSvgGraphicsItem 重载.

◆ rawNode()

DAAbstractNode * DA::DAAbstractNodeGraphicsItem::rawNode ( )

获取item对应的node

返回

◆ recordLinkInfo()

bool DA::DAAbstractNodeGraphicsItem::recordLinkInfo ( DAAbstractNodeLinkGraphicsItem link,
const DANodeLinkPoint pl 
)
protected

此函数在DAAbstractNodeLinkGraphicsItem的attachedTo/From过程中调用

参数
item
pl
返回
如果返回false,说明记录不成功,已经有相同的连接了

◆ removeLinkInfo()

bool DA::DAAbstractNodeGraphicsItem::removeLinkInfo ( DAAbstractNodeLinkGraphicsItem link,
const DANodeLinkPoint pl 
)
protected

连接的link在销毁时调用,把item记录的link信息消除

参数
item
pl
返回

◆ resetLinkPoint()

void DA::DAAbstractNodeGraphicsItem::resetLinkPoint ( )

重置链接点,会把原来的信息清空,包括已经链接的item

注解
此函数的调用会清空已有的链接

◆ saveToXml()

bool DA::DAAbstractNodeGraphicsItem::saveToXml ( QDomDocument *  doc,
QDomElement *  parentElement,
const QVersionNumber &  ver 
) const
overridevirtual

保存到xml中

参数
doc
parentElement
返回

重载 DA::DAGraphicsResizeableItem .

DA::DAStandardNodePixmapGraphicsItem 重载.

◆ setBodySize()

void DA::DAAbstractNodeGraphicsItem::setBodySize ( const QSizeF &  s)
overridevirtual

◆ setIcon()

void DA::DAAbstractNodeGraphicsItem::setIcon ( const QIcon &  icon)

设置图标

参数
icon

◆ setLinkPoint()

void DA::DAAbstractNodeGraphicsItem::setLinkPoint ( const QString &  name,
const DANodeLinkPoint newLinkpoint 
)
protected

更改连接点的信息,name是连接点名字,如果有重名,只修改第一个查找到的名字的连接点

参数
name
newLinkpoint

◆ setLinkPointDirection()

bool DA::DAAbstractNodeGraphicsItem::setLinkPointDirection ( const QString &  name,
AspectDirection  d 
)

设置linkpoint的方向,linkpoint 方向设置只会影响显示,不会影响工作流的链接

参数
name
d

◆ setLinkPointDrawDelegate()

void DA::DAAbstractNodeGraphicsItem::setLinkPointDrawDelegate ( DANodeLinkPointDrawDelegate delegate)

设置连接点绘制的代理,如果不设置会有一个默认代理

参数
delegate
注解
代理的内存将交由DAAbstractNodeGraphicsItem控制,用户不要在外部进行delete操作

◆ setLinkPointLocation()

void DA::DAAbstractNodeGraphicsItem::setLinkPointLocation ( DANodeLinkPoint::Way  way,
DAAbstractNodeGraphicsItem::LinkPointLocation  l 
)

设置连接点的位置

注解
设置连接点位置后,需要调用updateLinkPointPos 才能生效
参见
DAAbstractNodeGraphicsItem::LinkPointLocation
参数
l

◆ setLinkPointShowType()

void DA::DAAbstractNodeGraphicsItem::setLinkPointShowType ( LinkPointShowType  t)

设置连接点的显示属性

参数
t

◆ setNodePalette()

void DA::DAAbstractNodeGraphicsItem::setNodePalette ( const DANodePalette pl)

设置调色板

参数
pl

◆ showLinkPointText()

void DA::DAAbstractNodeGraphicsItem::showLinkPointText ( bool  on)

显示连接点的文字

参数
on

◆ tryLinkOnItemPos()

void DA::DAAbstractNodeGraphicsItem::tryLinkOnItemPos ( const QPointF &  p,
DA::DAAbstractNodeLinkGraphicsItem linkItem,
DANodeLinkPoint::Way  way 
)
virtual

此函数是在连接线点击item时调用的回调,无论点击的位置是否存在连接点,都会调用此回调

通过此函数可以实现动态增加连接点功能,例如一个item的连接点是随着点击而根据某个逻辑判断是否需要存在的,可以重装此函数,在点击时进行判断

参数
p
linkItem注意,way=Output,linkItem为nullptr,这时连接线还没创建
way判断是输入还是输出,如果way=Input,就是输入过程的点击(被连接),way=Output,就是输出过程的点击(链接出去)

◆ type()

int DA::DAAbstractNodeGraphicsItem::type ( ) const
inlineoverridevirtual

◆ updateLinkPointPos()

void DA::DAAbstractNodeGraphicsItem::updateLinkPointPos ( )

更新连接点位置,在bodyBoundingRect改变之后调用

参数
bodyRect

该类的文档由以下文件生成: