QGraphic学习笔记 - 图文

内容发布更新时间 : 2025/7/10 5:54:11星期一 下面是文章的全部内容请认真阅读。

同样的一个返回item轮廓的函数

QRegion QGraphicsItem::boundingRegion ( const QTransform & itemToDeviceTransform ) const

返回该item的轮廓区域,返回的区域的坐标系统依赖于参数itemToDeviceTransform,如果你传递一个Qtransform对象作为参数,那么函数将返回本地坐标系统区域

返回的区域是item内容可见的一个大概的轮廓,尽管计算起来很浪费空间和时间,但是比boundingRect()更精准,而且当重绘时候,它还能避免不必要的重绘。对像线或者简单的多边形来说非常有效。

也可以调节轮廓区域的粒度通过调用setBoundingRegionGranularity(),默认的粒度是0,这时候item的区域和轮廓矩形一样的。

itemToDeviceTransform是从item坐标系统到设备坐标系统的一个转换。如果你想让这个函数返回一个场景坐标区域,可以用函数sceneTransform()作为参数。 相关函数qreal QGraphicsItem::boundingRegionGranularity () const 返回item的轮廓区域粒度

5、void QGraphicsItem::setPos ( const QPointF & pos )

在父对象坐标系统中设置item的位置为pos,对没有父对象的items,pos使用的场景的坐标系统,

6、QPointF QGraphicsItem::scenePos () const

返回该item在场景中的坐标点,等价于调用函数mapToScene(0, 0). 7、QPointF QGraphicsItem::pos () const

返回item在父坐标系中的位置,如果没有父坐标系,那么返回在场景坐标系中的位置,此时等价于调用scenePos (),可以直接调用scenePos ()来获取该item在场景中的位置,从而忽略其父对象。

8、enum QGraphicsItem::CacheMode

设置绘图的缓冲模式,默认是没有缓冲,如果使用缓冲区的话,在重绘时候,非常快

设置缓冲模式使用函数QGraphicsItem::setCacheMode(). 9、bool QGraphicsItem::acceptDrops () const

如果item能够接受拖拽事件,就返回真,否则返回假,默认的不能接受拖拽事件 同类函数

void QGraphicsItem::setAcceptDrops ( bool on )

如果On是真的话,就设置item可以接受拖拽事件,否则对拖拽事件是透明的,也就是不能响应拖拽,默认是不响应的。

10、bool QGraphicsItem::acceptHoverEvents () const

如果可以接受鼠标悬浮在他上面的事件,就返回真,否则返回假。默认也是不接受该事件的。 同样的用于设置是否接受该事件的函数

void QGraphicsItem::setAcceptHoverEvents ( bool enabled ) 如果enabled为真,就接受,否则就不接受。

11、Qt::MouseButtons QGraphicsItem::acceptedMouseButtons () const

返回这个item所能接受的鼠标事件的鼠标键,默认的是所有的鼠标键事件都能接受。 同样的使用函数void QGraphicsItem:: setAcceptedMouseButtons ( Qt::MouseButtons buttons )来设置接受的鼠标键事件,如果想忽略某个鼠标键事件,可以用setAcceptedMouseButt

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi