场景(QGraphicsScene类)、视图(QGrahicsView类)、图形对象元素(QGraphicsItem类及其子类)
5.1 场景-视图-对象元素架构
场景(QGraphicsScene类),用于管理对象元素或者图形对象元素(QGraphicsItem类及其子类)的实例。
视图(QGrahicsView类),用于可视化和显示QGraphicsScene的内容,还负责将事件传递给QGraphicsScene。这两个类有不同的坐标系统,因此在进行坐标改变时,要分别使用转换位置值的函数。
对象元素图形对象元素(QGraphicsItem类及其子类,可以是线、矩形、图像、文本。
5.2 场景(QGraphicsScene类)
addEllipse、addLine、addRect以及addPolygon函数,用于向场景中添加普通几何形状。
// 椭圆的中心点位于(-100, 100),宽度为200,高度为100
// 使用一个宽度为2.0的笔(QPen)和一个填充模式
scene.addEllipse(-100.0, 100.0, 200.0, 100.0,
// 笔(QPen)使用Qt::SolidPattern的刷子(QBrush)和2.0的宽度
QPen(QBrush(Qt::SolidPattern), 2.0),
// 刷子(QBrush)使用Qt::SolidPattern填充椭圆
QBrush(Qt::SolidPattern));
// 添加一条线到scene中 // 线的起点为(-200, 200),终点为(+200, 200)
scene.addLine(-200.0, 200.0, 200.0, 200.0,
// 笔(QPen)使用Qt::SolidPattern的刷子(QBrush)和5.0的宽度
QPen(QBrush(Qt::SolidPattern), 5.0));// 使用一个宽度为5.0的笔(QPen)
// 添加一个矩形到scene中 // 矩形的左上角坐标为(-150, 150),宽度为300,高度为140 // 注意:这里没有指定笔和刷子的样式,因此将使用默认的样式
scene.addRect(-150, 150, 300, 140);
5.3 对象元素(QGraphicsItem类)
是场景绘制所有元素的基类,它包含各种方法和属性来处理每一个对象元素的绘制、与其他对象元素的冲突检测、鼠标单即以及其他事件等等。
5.4 视图(QGraphicsView类)