述
图形视图(Graphics View)提供了一个平台,用于大量自定义2D图形项(Item)的管理与交互,并提供了一个视图部件(view widget)来显示可以缩放和旋转的视图项(items)。
框架包括一个事件传播架构,支持scene中的items进行精确的双精度交互功能。Items(图形元素)可以处理键盘事件、鼠标按下、移动、释放和双击事件,同时也能跟踪鼠标移动。
图形视图使用一个BSP(Binary Space Partitioning - 二叉空间分割)树,以提供对图形元素的快速查找,可以想像,即使在包含数以百万计items的超大场景中,也能够实时显示。
图形视图架构
图形视图提供了一个item-based方式来实现model-view编程,这一点很像例程InterView中的便利类 QTableView、QTreeView和QListView。多个views可以观察一个单独的scene,场景则包含了不同的几何形状的items 。
Scene
QGraphicsScene提供了图形视图场景(scene)。scene有以下职责:
- 提供一个用于管理大量items的快速接口
- 传递事件到每个item
- 管理item的状态,例如:选择和焦点处理
- 提供未进行坐标变换的渲染功能,主要用于打印