QGraphicsScene
和 QGraphicsView
是 Qt 图形视图框架中的两个核心类,它们在功能和使用上存在显著的差别。
- QGraphicsScene:
QGraphicsScene
提供了一个表面,您可以在这个表面上添加和管理图形项(如矩形、椭圆、文本等)。- 它是一个独立的二维空间,拥有自己的坐标系统,通常坐标原点 (0,0) 在左上角。
- 场景可以包含多个图形项,这些图形项可以是自定义的或者由 Qt 提供的标准图形项。
- 场景负责管理图形项的状态,包括位置、大小、可见性等。
- 场景还处理图形项之间的交互,如碰撞检测、事件传播等。
- QGraphicsView:
QGraphicsView
是一个窗口部件,它提供了一个可视化的界面来查看和交互QGraphicsScene
的内容。- 视图负责渲染场景中的图形项,并将其显示给用户。
- 用户可以通过视图来平移、缩放和旋转场景,从而改变图形项的显示方式和视角。
- 视图还可以处理用户的输入事件,如鼠标点击、键盘输入等,并将这些事件传递给场景中的图形项。
- 一个场景可以被多个视图同时查看,每个视图可以以不同的方式展示场景(例如,不同的缩放级别或旋转角度)。
简而言之,QGraphicsScene
是内容的容器,负责管理和维护图形项的逻辑;而 QGraphicsView
是这些内容的展示窗口,负责将场景中的内容渲染给用户,并处理用户的交互。这两者通常一起使用,以创建丰富的图形用户界面和交互式图形应用。