|
| 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中加载
|
| |
| 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) |
| |
|
| 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 |
| | 判断当前场景是否为只读模式,只读模式不允许操作
|
| |
|
| static QRectF | rectFromTwoPoint (const QPointF &p0, const QPointF &p1) |
| | 通过两个点形成一个矩形,两个点总能形成一个矩形,如果重合,返回一个空矩形
|
| |
| 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
|
| |
| static DAGraphicsItem * | cast (QGraphicsItem *i) |
| | dynamic_cast为DAGraphicsItem
|
| |
| 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
|
| |
绘制连接线的item
注意,boundingRect的改变前需要调用prepareGeometryChange,避免出现残影