浅谈浅谈Qt QGraphics体系及刷新机制介绍体系及刷新机制介绍
主要介绍了浅谈Qt QGraphics体系及刷新机制介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
学习价值,需要的朋友们下面随着小编来一起学习学习吧
概述概述
Qt的三大体系:QWidget、QGraphics、Quick,其中QGraphics图形框架算是这三个中比较高级的一种用法了,并且使用起来相比另外两个体
系会更加的复杂一些,不过它能实现的功能却非常强大,主要体现在对图元的管理,它独特的刷新机制可以在众多的图元中都能够很好的管
理,保证整个交互的流畅度。
而这里要描述的就是QGraphics体系的刷新机制以及该体系中相关元素的使用方式及特点。
QGraphics体系的三大元素体系的三大元素
QGraphics体系中最重要的三大元素:QGraphicsView、QGraphicsScene、QGraphicsItem,这三者构成了QGraphics体系最基础的模型框
架,也是在使用过程中必不可少的元素。
QGraphicsScene :场景。场景用于装载所有item元素,它是一个无限大的空间,但是我们在使用的时候通常会指定一块区域
(setSceneRect)用于安放所有的item元素,并且item之间的逻辑,以及消息传递都是从场景中进行统一管理,比如我门要捕捉鼠标消息,
或者触控消息,统一在Scene中获取,然后分发给需要的item,可以说Scene就是一个大管家;
QGraphicsView:视图。视图就好比一个窗口,用于展示当前Scene中的元素,上面说到,Scene是一个无限大的空间,当view移动到
Scene某个位置,就能看到该位置上的Item元素。
QGraphicsItem:每一个单独的图元,QGraphicsItem是一个基类,还有很多子类继承于它,也就是这一系列的item行程了整个QGraphics
体系中的每一个图元。
看一下这三者的关系:
再用一个非常形象的类比应该就会很明白这三者的关系了:
Scene就好比天空,无限大,而Item就是天空中的云朵,可以有很多云,而view就好比一扇窗户,透过窗户可以看到天空中的云,而一片天空
可以通过很多扇窗户去看。所以一个Scene可以同时对应多个View,但是一个View只能对应一个Scene。
刷新机制刷新机制
OK ,有了以上铺垫,终于可以进入都今天的主题,QGraphics体系中的刷新机制到底是怎样的呢?
我们都知道,QWidget是以窗口式刷新,每次会渲染整个窗口达到刷新目的,而QGraphics中可以局部刷新,也就是说可以只刷新某一个图元,
而其他的元素保持不动,这是二者在刷新机制上很大的不同,以致于QGraphics在渲染大量图元的时候也能很流畅。
看以下图示:
这里的itemA在刷新的时候,ItemB是不会刷新的,这是两个独立的Item,但是考虑以下这种情况:
评论1