Qt学习笔记图形视图框架(一)201007110740
优点:处理多个图元,单击,拖动,选择图元架构:一个场景,多个图元位于其中,通过视图显示主要应用绘图软件,显示地图软件当使用没有变换的视图观察场景时,场景中的一个单元对应屏幕上的一个像素图元坐标通常以图元中心为原点,X轴正方向为向右,Y轴正方向为向下场景坐标的原点在场景中心,X轴正方向为向右,Y轴正方向为向下视图坐标以左上角为原点,X轴正方向为向右,Y轴正方向为向下所有的鼠标事件最开始都是使用视图坐标
场景:图元的容器1提供管理很多图元的接口2传播事件到图元中3管理图元状态,例如选择和焦点处理4提供非转换的绘制功能,主要用于打印QGraphicsSce
esce
eQGraphicsRectItemrectsce
eaddRectQRectF00100100添加图元QGraphicsItemitemsce
eitemAt5050查询图元itemrect;通过QGraphicsSce
esetSelectio
Area可以选择场景的任一个图元,QGraphicsSce
esetSelectedItems返回被选择的图元设置焦点图元QGraphicsSce
esetFocusItemsetFocusQGraphicsSce
efocusItem返回焦点图元视图:一个可视的子部件,可视化场景的内容多个视图可以显示同一个场景坐标转换:QGraphicsViewmapToSce
eQGraphicsViewmapFromSce
e图元:支持鼠标事件,滚轮事件,上下文菜单事件支持键盘输入焦点,按键事件支持拖放支持分组冲突探测提供坐标转换,图元与场景,图元与图元之间
f利用QGraphicsItemshape和QGraphicsItemcollidesWith实现冲突探测,这2个函数都是虚函数
相关类:QGraphicsSce
eQGraphicsItemQGraphicsViewQGraphicsItem子类:QGraphicsEllipseItemprovidesa
ellipseitemQGraphicsLi
eItemprovidesali
eitemQGraphicsPathItemprovidesa
arbitrarypathitemQGraphicsPixmapItemprovidesapixmapitemQGraphicsPolygo
Itemprovidesapolygo
itemQGraphicsRectItemprovidesarecta
gularitemQGraphicsSimpleTextItemprovidesasimpletextlabelitemQGraphicsTextItemprovidesa
adva
cedtextbrowseritemQGraphicsSvgItemprovidesaSVGfileitemQGraphicsSce
e拥有多个图元,包含三层:背景层,图元层,前景层背景层和前景层可以使用QBrush绘制,也可以使用drawBackgrou
ddrawForegrou
d实现如果使用图片作为背景,可以用textureQBrushpixmap实现前景层brush可以使用半透明的白色实现褪色效果,或者使用交叉模式实现网格重叠场景可以告诉我们,哪些图元发生冲突,哪些图元被选择,哪些图元位于一个特定的点或者区域每个图元可以是:1顶级图元,场景是它的父亲;2孩子,它的父亲是另一个图元,任何作用于父图元的转换都将自动应用于它的r