QGraphicsScene的功能

QGraphicsScene在Qt中负责2D图形item的管理,包括位置决定、区域显示及事件处理。它不直接显示,而是配合GraphicsView使用。QGraphicsScene通过BSP树算法管理item,提供快速查找功能,并能处理选择和事件。事件处理涉及键事件和鼠标事件,焦点item会接收键事件,鼠标悬停事件则触发hover事件。
摘要由CSDN通过智能技术生成

QGraphicsScene

item的管理

  • QGraphicsScene提供了接口来管理大量的2D图形item(如圆,矩形,线等)。

  • 决定item的位置,在某一个区域内item是否显示

  • 可视化整个scene,或者放大并查看场景的某一部分。

  • scene自身不带有显示功能,只是管理item。显示需要创建GraphicsView

  • QGraphicsScene通过查找算法来管理item的位置,默认算法是 BSP tree。

  • QGraphics Scene 的边界矩形:item可以自由的放置在这个矩形内的任意位置,这个矩形是不限制大小的。这个边界仅被用以内部记录,管理scene中item的索引。如果没有设置这个边界框,QGraphics Scene会使用所有item的边界作为这个矩形框(调用itemsBoundingRect()返回的矩形)。itemsBoundingRect函数比较耗时,因为它会收集所有items的位置信息。故在对大场景进行设置时,要设置场景的大小。

  • QGraphicsScene通过items()来快速查找items的位置,这个函数有很多重载函数,根据指定位置查找item,在一个矩形框里的所有item查找。返回的item列表是通过堆排序,最上层的item就是列表中的第一个元素。使用ItemAt可以直接获取指定位置的第一个元素。

  • QGraphicsScene也保留了场景的选择信息。调用setSelectionArea()来选择items,调用clearSelection(&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值