|
DAWorkbench 0.0.1
DAWorkbench API
|
标准的连线 更多...
#include <DAStandardNodeLinkGraphicsItem.h>
Public 成员函数 | |
| DAStandardNodeLinkGraphicsItem (QGraphicsItem *p=nullptr) | |
| DAStandardNodeLinkGraphicsItem (DAAbstractNodeGraphicsItem *from, DANodeLinkPoint pl, QGraphicsItem *p=nullptr) | |
Public 成员函数 继承自 DA::DAAbstractNodeLinkGraphicsItem | |
| 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 | |
| DAAbstractNodeGraphicsItem * | fromNodeItem () const |
| 获取from node item,如果没有返回nullptr | |
| DAAbstractNodeGraphicsItem * | toNodeItem () 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 类型 继承自 DA::DAAbstractNodeLinkGraphicsItem | |
| 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 成员函数 继承自 DA::DAAbstractNodeLinkGraphicsItem | |
| 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 DAGraphicsItem * | cast (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 成员函数 继承自 DA::DAAbstractNodeLinkGraphicsItem | |
| 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 | |
| DAGraphicsScene * | daScene () 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 | |
| DAGraphicsScene * | daScene () const |
标准的连线