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

绘制连接线的item 更多...

#include <DAAbstractNodeLinkGraphicsItem.h>

类 DA::DAAbstractNodeLinkGraphicsItem 继承关系图:
DA::DAGraphicsLinkItem DA::DAGraphicsItem DA::DAXMLFileInterface DA::DAStandardNodeLinkGraphicsItem

class  PrivateData
 

Public 类型

enum  AnonymousType { anonymous = DA::ItemType_GraphicsNodeLinkItem }
 
- Public 类型 继承自 DA::DAGraphicsLinkItem
enum  AnonymousType { anonymous = DA::ItemType_DAGraphicsLinkItem }
 
enum  LinkLineStyle { LinkLineBezier , LinkLineStraight , LinkLineKnuckle }
 连接点的样式 更多...
 
enum  Orientations { OrientationStart = 0 , OrientationEnd , OrientationBoth }
 标记方向 更多...
 
enum  EndPointType { EndPointNone , EndPointTriangType }
 端点样式 更多...
 
- Public 类型 继承自 DA::DAGraphicsItem
enum  { Type = DA::ItemType_DAGraphicsItem }
 

Public 成员函数

int type () const override
 
 DAAbstractNodeLinkGraphicsItem (QGraphicsItem *p=nullptr)
 DAAbstractNodeLinkGraphicsItem
 
 DAAbstractNodeLinkGraphicsItem (DAAbstractNodeGraphicsItem *from, const DA::DANodeLinkPoint &pl, QGraphicsItem *p=nullptr)
 
void updatePos ()
 自动根据fromitem来更新位置
 
virtual QRectF updateBoundingRect () override
 更新范围
 
void setLinkPointNameVisible (bool on=true, Orientations o=OrientationBoth)
 设置是否显示连接点的文本
 
bool isLinkPointNameVisible (Orientations o=OrientationBoth) const
 是否显示连接点的文本
 
void setLinkPointNameTextColor (const QColor &c, Orientations o=OrientationBoth)
 设置连接点显示的颜色
 
QColor getLinkPointNameTextColor (Orientations o) const
 获取连接点显示的颜色
 
void setLinkPointNamePositionOffset (int offset, Orientations o=OrientationBoth)
 设置文本和连接点的偏移量,默认为10
 
int getLinkPointNamePositionOffset (Orientations o) const
 文本和连接点的偏移量
 
QGraphicsSimpleTextItem * getFromTextItem () const
 
QGraphicsSimpleTextItem * getToTextItem () const
 
void setText (const QString &t)
 设置文本
 
QString getText () const
 获取文本
 
QGraphicsSimpleTextItem * getTextItem ()
 获取文本对应的item
 
DAAbstractNodeGraphicsItemfromNodeItem () const
 获取from node item,如果没有返回nullptr
 
DAAbstractNodeGraphicsItemtoNodeItem () const
 获取to node item,如果没有返回nullptr
 
DANodeLinkPoint fromNodeLinkPoint () const
 from的连接点
 
DANodeLinkPoint toNodeLinkPoint () const
 to的连接点
 
DAAbstractNode::SharedPointer fromNode () const
 获取from的节点,如果没有返回nullptr
 
DAAbstractNode::SharedPointer toNode () const
 获取to的节点,如果没有返回nullptr
 
virtual void finishedNodeLink ()
 完成连接
 
virtual bool willCompleteLink () override
 节点的连接线在确认点击链接到完成才能完成链接
 
virtual QPainterPath generateLinePainterPath (const QPointF &fromPoint, const QPointF &toPoint, LinkLineStyle linestyle=LinkLineStraight) override
 生成一个连接线
 
bool attachFrom (DAAbstractNodeGraphicsItem *item, const QString &name)
 从item的出口开始进行连接
 
bool attachFrom (DAAbstractNodeGraphicsItem *item, const DANodeLinkPoint &pl)
 从item的出口开始进行连接
 
void detachFrom ()
 清空from节点
 
bool attachTo (DAAbstractNodeGraphicsItem *item, const QString &name)
 
bool attachTo (DAAbstractNodeGraphicsItem *item, const DANodeLinkPoint &pl)
 连接到结束节点
 
void detachTo ()
 断开to点
 
bool isLinked () const
 已经连接完成,在from和to都有节点时,返回true
 
virtual bool saveToXml (QDomDocument *doc, QDomElement *parentElement, const QVersionNumber &ver) const override
 保存到xml中
 
virtual bool loadFromXml (const QDomElement *parentElement, const QVersionNumber &ver) override
 从xml中加载
 
- Public 成员函数 继承自 DA::DAGraphicsLinkItem
int type () const override
 
 DAGraphicsLinkItem (QGraphicsItem *p=nullptr)
 
void setEndPointType (Orientations o, EndPointType epType)
 设置连接点端点的样式
 
EndPointType getEndPointType (Orientations o) const
 获取端点的样式
 
int getEndPointSize () const
 端点大小
 
void setEndPointSize (int v)
 设置端点大小
 
void setLinkLineStyle (LinkLineStyle s)
 设置连线样式
 
LinkLineStyle getLinkLineStyle () const
 获取连线样式
 
void setLinePen (const QPen &p)
 设置线的画笔
 
QPen getLinePen () const
 返回当前画笔
 
void setBezierControlScale (qreal rate=0.25)
 设置贝塞尔曲线的控制点的缩放比例
 
qreal getBezierControlScale () const
 获取贝塞尔曲线的控制点的缩放比例
 
virtual void setStartScenePosition (const QPointF &scenepostion)
 开始连接点的位置,位置基于scene
 
QPointF getStartScenePosition () const
 开始连接点的位置,位置基于scene
 
virtual void setEndScenePosition (const QPointF &scenepostion)
 结束连接点的位置,位置基于scene
 
QPointF getEndScenePosition () const
 结束连接点的位置,位置基于scene
 
QPainterPath getLinkLinePainterPath () const
 获取链接线
 
QPainterPath getEndPointPainterPath (Orientations epType) const
 获取末端(箭头)的绘图路径
 
void updateEndPoint ()
 更新末端
 
virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=nullptr) override
 绘图
 
virtual void paintLinkLine (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget, const QPainterPath &linkPath)
 绘制连接线
 
virtual void paintEndPoint (QPainter *painter, const QStyleOptionGraphicsItem *option, const QPointF &pStart, EndPointType etStart, const QPainterPath &startPainterPath, const QPointF &pEnd, EndPointType etEnd, const QPainterPath &endPainterPath, const QPainterPath &linkPath)
 绘制箭头
 
virtual QRectF boundingRect () const override
 
virtual QPainterPath shape () const override
 
virtual QPainterPath generateEndPointPainterPath (EndPointType epType, int size)
 生成箭头,所有生成的箭头箭头尖端需要再原点,箭头朝向x轴正方向
 
void setScenePos (const QPointF &p)
 
void setScenePos (qreal x, qreal y)
 
- 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
 是否显示背景
 
virtual void groupPositionChanged (const QPointF &p)
 分组的位置发生了改变 此函数是在分组后才会回调,分组后,分组的移动对于item来说是不移动的,这时候无法触发ItemPositionChanged的改变,从而导致一些异常,因此需要分组告诉子对象分组移动了
 
void setScenePos (const QPointF &p)
 
void setScenePos (qreal x, qreal y)
 
uint64_t getItemID () const
 
void setItemID (uint64_t id)
 
bool isSceneReadOnly () const
 判断当前场景是否为只读模式,只读模式不允许操作
 

静态 Public 成员函数

static QRectF rectFromTwoPoint (const QPointF &p0, const QPointF &p1)
 通过两个点形成一个矩形,两个点总能形成一个矩形,如果重合,返回一个空矩形
 
- 静态 Public 成员函数 继承自 DA::DAGraphicsLinkItem
static qreal pointLength (const QPointF &a, const QPointF &b)
 计算两个点的距离
 
static QPointF elongation (const QPointF &orgPoint, AspectDirection d, qreal externLen)
 延长线,以一个方向和距离延伸
 
static bool isDirectionOpposite (AspectDirection d1, AspectDirection d2)
 判断两个方向是否相对,也就是东对西,南对北就是相对,相对必定平行
 
static bool isDirectionParallel (AspectDirection d1, AspectDirection d2)
 判断两个方向是否平行
 
static bool isPointInFront (const QPointF &p1, AspectDirection d1, const QPointF &p2)
 在1d的方向上,点2在点1的方向的前面
 
static bool isPointCanMeet (const QPointF &p1, AspectDirection d1, const QPointF &p2, AspectDirection d2)
 判断点能否相遇,针对垂直方向才有意义
 
static bool isParallelPointApproachInDirection (const QPointF &p1, AspectDirection d1, const QPointF &p2, AspectDirection d2)
 针对平行点线,沿着方向移动可以接近,此函数只对平行点线有用
 
static AspectDirection oppositeDirection (AspectDirection d)
 翻转方向
 
static AspectDirection relativeDirectionOfPoint (const QPointF &p1, const QPointF &p2)
 计算点1相对点2的方向 | | p1———p2———— | | 如上面示例,此函数返回West
 
static QPointF calcPainterPathEndPoint (const QPainterPath &path, bool fromStart=true, qreal distanceMaxPx=18.0, int maxTryCnt=10)
 获取线段的末端,这个函数可以返回末端但有不是终端的点,这个点离终端的距离不会超过distanceMaxPx
 
- 静态 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
 

Protected 成员函数

void updateFromLinkPointInfo (const DANodeLinkPoint &pl)
 更新连接点信息
 
void updateToLinkPointInfo (const DANodeLinkPoint &pl)
 更新连接点信息
 
QVariant itemChange (QGraphicsItem::GraphicsItemChange change, const QVariant &value) override
 这里主要对只读模式的过滤
 
void callItemIsDestroying (DAAbstractNodeGraphicsItem *item, const DA::DANodeLinkPoint &pl)
 
- Protected 成员函数 继承自 DA::DAGraphicsLinkItem
DAGraphicsScenedaScene () const
 
void setStartPosition (const QPointF &p)
 开始连接点的位置
 
const QPointF & getStartPosition () const
 开始连接点的位置
 
void setEndPosition (const QPointF &p)
 结束连接点的位置
 
const QPointF & getEndPosition () const
 结束连接点的位置
 
virtual QPen getPainterPen (const QStyleOptionGraphicsItem *option) const
 获取绘图的画笔
 
virtual QPainterPath generateLinkLineBezierPainterPath (const QPointF &fromPos, AspectDirection fromDirect, const QPointF &toPos, AspectDirection toDirect)
 生成贝塞尔曲线
 
virtual QPainterPath generateLinkLineStraightPainterPath (const QPointF &fromPos, const QPointF &toPos)
 生成直线
 
virtual QPainterPath generateLinkLineKnucklePainterPath (const QPointF &fromPos, AspectDirection fromDirect, const QPointF &toPos, AspectDirection toDirect)
 生成直角连线
 
- Protected 成员函数 继承自 DA::DAGraphicsItem
DAGraphicsScenedaScene () const
 

友元

class DAAbstractNodeGraphicsItem
 

详细描述

绘制连接线的item

注意,boundingRect的改变前需要调用prepareGeometryChange,避免出现残影

成员函数说明

◆ attachFrom() [1/2]

bool DA::DAAbstractNodeLinkGraphicsItem::attachFrom ( DAAbstractNodeGraphicsItem item,
const DANodeLinkPoint pl 
)

从item的出口开始进行连接

注解
此函数不会触发节点的连接,仅仅在attachTo才会触发节点的linkto
参数
item
pl
返回

◆ attachFrom() [2/2]

bool DA::DAAbstractNodeLinkGraphicsItem::attachFrom ( DAAbstractNodeGraphicsItem item,
const QString &  name 
)

从item的出口开始进行连接

参数
item
name
返回

◆ attachTo()

bool DA::DAAbstractNodeLinkGraphicsItem::attachTo ( DAAbstractNodeGraphicsItem item,
const DANodeLinkPoint pl 
)

连接到结束节点

注解
此函数会触发节点的linkTo
参数
item
pl
返回

◆ detachFrom()

void DA::DAAbstractNodeLinkGraphicsItem::detachFrom ( )

清空from节点

在nodeitem删除时会触发

断开时,node的连接就已经断开,因此,对workflow来讲,断开连接是无需等到detachto调用

◆ detachTo()

void DA::DAAbstractNodeLinkGraphicsItem::detachTo ( )

断开to点

断开时,node的连接就已经断开,因此,对workflow来讲,断开连接是无需等到detachfrom,detachTo两个一起调用, 任意一个detach操作都会对workflow的node断开连接

◆ fromNode()

DAAbstractNode::SharedPointer DA::DAAbstractNodeLinkGraphicsItem::fromNode ( ) const

获取from的节点,如果没有返回nullptr

返回

◆ fromNodeItem()

DAAbstractNodeGraphicsItem * DA::DAAbstractNodeLinkGraphicsItem::fromNodeItem ( ) const

获取from node item,如果没有返回nullptr

返回

◆ fromNodeLinkPoint()

DANodeLinkPoint DA::DAAbstractNodeLinkGraphicsItem::fromNodeLinkPoint ( ) const

from的连接点

返回

◆ generateLinePainterPath()

QPainterPath DA::DAAbstractNodeLinkGraphicsItem::generateLinePainterPath ( const QPointF &  fromPoint,
const QPointF &  toPoint,
DAGraphicsLinkItem::LinkLineStyle  linestyle = LinkLineStraight 
)
overridevirtual

生成一个连接线

参数
fromPoint
toPoint
strokerWidth轮廓扩展,此轮廓扩展会生成一个
返回

重载 DA::DAGraphicsLinkItem .

◆ getLinkPointNamePositionOffset()

int DA::DAAbstractNodeLinkGraphicsItem::getLinkPointNamePositionOffset ( DAAbstractNodeLinkGraphicsItem::Orientations  o) const

文本和连接点的偏移量

参数
o不能指定OrientationBoth,指定OrientationBoth返回0
返回
指定OrientationBoth返回0

◆ getLinkPointNameTextColor()

QColor DA::DAAbstractNodeLinkGraphicsItem::getLinkPointNameTextColor ( DAAbstractNodeLinkGraphicsItem::Orientations  o) const

获取连接点显示的颜色

参数
o不能指定OrientationBoth,指定OrientationBoth返回QColor()
返回

◆ getText()

QString DA::DAAbstractNodeLinkGraphicsItem::getText ( ) const

获取文本

返回

◆ getTextItem()

QGraphicsSimpleTextItem * DA::DAAbstractNodeLinkGraphicsItem::getTextItem ( )

获取文本对应的item

返回

◆ isLinked()

bool DA::DAAbstractNodeLinkGraphicsItem::isLinked ( ) const

已经连接完成,在from和to都有节点时,返回true

返回

◆ isLinkPointNameVisible()

bool DA::DAAbstractNodeLinkGraphicsItem::isLinkPointNameVisible ( Orientations  o = OrientationBoth) const

是否显示连接点的文本

返回

◆ itemChange()

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

这里主要对只读模式的过滤

参数
change
value
返回

重载 DA::DAGraphicsItem .

◆ loadFromXml()

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

从xml中加载

参数
itemElement
返回

重载 DA::DAGraphicsLinkItem .

◆ rectFromTwoPoint()

QRectF DA::DAAbstractNodeLinkGraphicsItem::rectFromTwoPoint ( const QPointF &  p0,
const QPointF &  p1 
)
static

通过两个点形成一个矩形,两个点总能形成一个矩形,如果重合,返回一个空矩形

参数
p0
p1
返回

◆ saveToXml()

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

保存到xml中

参数
doc
parentElement
返回

重载 DA::DAGraphicsLinkItem .

◆ setLinkPointNamePositionOffset()

void DA::DAAbstractNodeLinkGraphicsItem::setLinkPointNamePositionOffset ( int  offset,
DAAbstractNodeLinkGraphicsItem::Orientations  o = OrientationBoth 
)

设置文本和连接点的偏移量,默认为10

参数
offset
o

◆ setLinkPointNameTextColor()

void DA::DAAbstractNodeLinkGraphicsItem::setLinkPointNameTextColor ( const QColor &  c,
DAAbstractNodeLinkGraphicsItem::Orientations  o = OrientationBoth 
)

设置连接点显示的颜色

参数
c
o

◆ setLinkPointNameVisible()

void DA::DAAbstractNodeLinkGraphicsItem::setLinkPointNameVisible ( bool  on = true,
Orientations  o = OrientationBoth 
)

设置是否显示连接点的文本

参数
on

◆ setText()

void DA::DAAbstractNodeLinkGraphicsItem::setText ( const QString &  t)

设置文本

参数
t

◆ toNode()

DAAbstractNode::SharedPointer DA::DAAbstractNodeLinkGraphicsItem::toNode ( ) const

获取to的节点,如果没有返回nullptr

返回

◆ toNodeItem()

DAAbstractNodeGraphicsItem * DA::DAAbstractNodeLinkGraphicsItem::toNodeItem ( ) const

获取to node item,如果没有返回nullptr

返回

◆ toNodeLinkPoint()

DANodeLinkPoint DA::DAAbstractNodeLinkGraphicsItem::toNodeLinkPoint ( ) const

to的连接点

返回

◆ type()

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

◆ updateBoundingRect()

QRectF DA::DAAbstractNodeLinkGraphicsItem::updateBoundingRect ( )
overridevirtual

更新范围

注解
争对只有一个起始连接点的情况下,此函数的终止链接点将更新为场景鼠标所在

重载 DA::DAGraphicsLinkItem .

◆ updateFromLinkPointInfo()

void DA::DAAbstractNodeLinkGraphicsItem::updateFromLinkPointInfo ( const DANodeLinkPoint pl)
protected

更新连接点信息

参数
pl

◆ updatePos()

void DA::DAAbstractNodeLinkGraphicsItem::updatePos ( )

自动根据fromitem来更新位置

注解
如果设置了toitem,会调用
参见
updateBoundingRect 来更新boundingRect

◆ updateToLinkPointInfo()

void DA::DAAbstractNodeLinkGraphicsItem::updateToLinkPointInfo ( const DANodeLinkPoint pl)
protected

更新连接点信息

参数
pl

◆ willCompleteLink()

bool DA::DAAbstractNodeLinkGraphicsItem::willCompleteLink ( )
overridevirtual

节点的连接线在确认点击链接到完成才能完成链接

返回

重载 DA::DAGraphicsLinkItem .


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