|
DAWorkbench 0.0.1
DAWorkbench API
|
用于调整大小的item 更多...
#include <DAGraphicsResizeableItem.h>
类 | |
| class | PrivateData |
Public 类型 | |
| 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 } |
信号 | |
| void | itemBodySizeChanged (const QSizeF &oldsize, const QSizeF &newsize) |
| itemBodySizeChanged | |
Public 成员函数 | |
| 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函数 | |
| virtual bool | saveToXml (QDomDocument *doc, QDomElement *parentElement, const QVersionNumber &ver) const override |
| 保存到xml中 | |
| virtual bool | loadFromXml (const QDomElement *itemElement, const QVersionNumber &ver) override |
| 从xml中加载 | |
| QSizeF | testBodySize (const QSizeF &s) |
| 测试一下setBodySize之后getBodySize能得到的尺寸 | |
| virtual void | setBodySize (const QSizeF &s) |
| 设置尺寸 | |
| 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 |
| 是否显示背景 | |
| 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 |
| 判断当前场景是否为只读模式,只读模式不允许操作 | |
Protected 成员函数 | |
| void | changeBodySize (const QSizeF &s) |
| 此函数和setBodySize不同,setBodySize是虚函数,且会校验尺寸的最大最小范围,此函数不进行校验 | |
| virtual void | hoverEnterEvent (QGraphicsSceneHoverEvent *event) override |
| virtual void | hoverMoveEvent (QGraphicsSceneHoverEvent *event) override |
| virtual void | hoverLeaveEvent (QGraphicsSceneHoverEvent *event) override |
| virtual void | mousePressEvent (QGraphicsSceneMouseEvent *event) override |
| virtual void | mouseReleaseEvent (QGraphicsSceneMouseEvent *event) override |
| virtual void | mouseMoveEvent (QGraphicsSceneMouseEvent *event) override |
| QVariant | itemChange (QGraphicsItem::GraphicsItemChange change, const QVariant &value) override |
| DAGraphicsResizeableItem::itemChange | |
Protected 成员函数 继承自 DA::DAGraphicsItem | |
| DAGraphicsScene * | daScene () const |
额外继承的成员函数 | |
静态 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 | |
用于调整大小的item
TODO:DAGraphicsResizeableItem改为DAGraphicsResizeOverlayItem
表征控制点和控制线的类型
|
override |
DAGraphicsResizeableItem的boundingRect会根据getSize尺寸进行计算
|
protected |
此函数和setBodySize不同,setBodySize是虚函数,且会校验尺寸的最大最小范围,此函数不进行校验
此函数适合继承的类在构造函数中调用,应为理论上构造函数不应该调用虚函数
| s |
|
virtual |
生成control points
| tp |
|
virtual |
控制点的大小
| QPair< QPointF, QSizeF > DA::DAGraphicsResizeableItem::doItemResize | ( | const QPointF & | mousescenePos | ) |
执行尺寸的改变
| mousescenePos |
| QPointF DA::DAGraphicsResizeableItem::getBodyCenterPoint | ( | ) | const |
返回body的中心点,此坐标系为item坐标系
| QPointF DA::DAGraphicsResizeableItem::getBodyCenterPos | ( | ) | const |
| QRectF DA::DAGraphicsResizeableItem::getBodyControlRect | ( | ) | const |
获取body包含控制窗口大小,就是在改变尺寸时包含那8个控制点的最大尺寸
| QRectF DA::DAGraphicsResizeableItem::getBodyRect | ( | ) | const |
绘图的区域
|
virtual |
获取绘图的shape
| QSizeF DA::DAGraphicsResizeableItem::getBodySize | ( | ) | const |
获取尺寸
| DAGraphicsResizeableItem::ControlType DA::DAGraphicsResizeableItem::getControlPointByPos | ( | const QPointF & | pos | ) | const |
测试位置是否在控制点上,如果是返回控制点的类型,如果不在返回NotAtControlPoint
| pos |
| QSize DA::DAGraphicsResizeableItem::getGridSize | ( | ) | const |
获取网格尺寸
| bool DA::DAGraphicsResizeableItem::isResizable | ( | ) | const |
判断是否允许
| bool DA::DAGraphicsResizeableItem::isResizing | ( | ) | const |
判断当前是否处于调整大小的状态中
| bool DA::DAGraphicsResizeableItem::isSnapToGrid | ( | ) | const |
是否允许对齐网格
|
signal |
itemBodySizeChanged
| oldsize | |
| newsize |
|
overrideprotectedvirtual |
DAGraphicsResizeableItem::itemChange
| change | |
| value |
重载 DA::DAGraphicsItem .
被 DA::DAStandardNodeSvgGraphicsItem, DA::DAGraphicsTextItem , 以及 DA::DAStandardNodePixmapGraphicsItem 重载.
|
overridevirtual |
从xml中加载
| itemElement |
重载 DA::DAGraphicsItem .
被 DA::DAGraphicsPixmapItem, DA::DAGraphicsRectItem, DA::DAGraphicsTextItem, DA::DAAbstractNodeGraphicsItem , 以及 DA::DAStandardNodePixmapGraphicsItem 重载.
|
overrideprotectedvirtual |
|
override |
用户不要继承此paint函数,而是继承paintBody函数
几个虚函数的绘制顺序:
| painter | |
| option | |
| widget |
|
virtual |
绘制背景
| painter | |
| option | |
| widget | |
| bodyRect |
|
pure virtual |
|
virtual |
绘制边框
| painter | |
| option | |
| widget | |
| bodyRect | body的尺寸 |
|
virtual |
绘制resize控制点
| painter | |
| option | |
| widget | |
| bodyRect |
|
virtual |
绘制resize边框
| painter | |
| option | |
| widget |
|
overridevirtual |
保存到xml中
| doc | |
| parentElement |
重载 DA::DAGraphicsItem .
被 DA::DAGraphicsPixmapItem, DA::DAGraphicsRectItem, DA::DAGraphicsTextItem, DA::DAAbstractNodeGraphicsItem , 以及 DA::DAStandardNodePixmapGraphicsItem 重载.
| void DA::DAGraphicsResizeableItem::setAutoCenterTransformOriginPoint | ( | bool | on = true | ) |
设置TransformOriginPoint自动设置为bodysize的中心,否则为用户自己指定
| on |
| void DA::DAGraphicsResizeableItem::setBodyCenterPos | ( | const QPointF & | p | ) |
setBodyCenterPos
| p | scene的点 |
| void DA::DAGraphicsResizeableItem::setBodyMaximumSize | ( | const QSizeF & | s | ) |
设置最大尺寸
| s |
| void DA::DAGraphicsResizeableItem::setBodyMinimumSize | ( | const QSizeF & | s | ) |
设置最小尺寸
| s |
| void DA::DAGraphicsResizeableItem::setBodyPos | ( | const QPointF & | p | ) |
对setPos的封装
| p |
|
virtual |
设置尺寸
| s |
被 DA::DAStandardNodeWidgetGraphicsItem, DA::DAGraphicsPixmapItem, DA::DAGraphicsTextItem, DA::DAAbstractNodeGraphicsItem, DA::DAStandardNodePixmapGraphicsItem, DA::DAStandardNodeSvgGraphicsItem , 以及 DA::DAStandardNodeTextGraphicsItem 重载.
| void DA::DAGraphicsResizeableItem::setControlerSize | ( | const QSizeF & | s | ) |
获取控制器的大小
| s |
| void DA::DAGraphicsResizeableItem::setEnableResize | ( | bool | on | ) |
设置是否Delegate可用
| on |
|
override |
用户不要继承此shape函数,而是继承bodyShape函数
| QSizeF DA::DAGraphicsResizeableItem::testBodySize | ( | const QSizeF & | s | ) |
测试一下setBodySize之后getBodySize能得到的尺寸
| s |
|
inlineoverridevirtual |
重载 DA::DAGraphicsItem .