Qt 学习笔记--图形视图框架(一) 2010-07-11 07:40 优点:处理多个图元,单击,拖动,选择图元 架构:一个场景,多个图元位于其中,通过视图显示 主要应用: 绘图软件,显示地图软件 当使用没有变换的视图观察场景时,场景中的一个单元对应屏幕上的一个像素 图元坐标通常以图元中心为原点,X 轴正方向为向右,Y 轴正方向为向下 场景坐标的原点在场景中心,X 轴正方向为向右,Y 轴正方向为向下 视图坐标以左上角为原点,X 轴正方向为向右,Y 轴正方向为向下 所有的鼠标事件最开始都是使用视图坐标 场景:图元的容器 1
提供管理很多图元的接口 2
传播事件到图元中 3
管理图元状态,例如选择和焦点处理 4
提供非转换的绘制功能,主要用于打印 QGraphicsScene scene; QGraphicsRectItem *rect = scene
addRect(QRectF(0, 0, 100, 100)); // 添加图元 QGraphicsItem *item = scene
itemAt(50, 50); // 查询图元 // item == rect; 通过 QGraphicsScene::setSelectionArea()可以选择场景的任一个图元, QGraphicsScene::setSelectedItems()返回被选择的图元 设置焦点图元 QGraphicsScene::setFocusItem(), setFocus(), QGraphicsScene::focusItem(), 返回焦点图元 视图: 一个可视的子部件,可视化场景的内容 多个视图可以显示同一个场景 坐标转换:QGraphicsView ::mapToScene(), QGraphicsView ::mapFromScene() 图元: 支持鼠标事件,滚轮事件,上下文菜单事件 支持键