Qt基础之二十九:图形视图框架(Graphics View Framework)及其应用

Posted 草上爬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt基础之二十九:图形视图框架(Graphics View Framework)及其应用相关的知识,希望对你有一定的参考价值。

无意中从网络获取一份俄罗斯方块源码,基于图形视图框架(Graphics View Framework)实现的。当然源码的核心从来都不是界面,而是方块的移动、变形和消除等算法。源码非常完整,注释详细,经改动后已能在Qt5中运行,下面是运行效果,背景音乐和音效也是有的。

一.效果

二.原理

Qt提供了图形视图框架(Graphics View Framework)、动画框架(Animation Framework)和状态机框架(State Machine Framework)来实现更加高级的图形和动画应用。使用这些框架可以快速设计出动态GUI应用程序和各种动画,游戏程序。
之前的Paint System 2D绘图已经可以绘制出各种图形,并且进行简单的控制。不过,如果要绘制成千上万相同或者不同的图形,并且对它们进行控制,比如拖动这些图形、检测它们的位置以及判断它们是否相互碰撞等,使用以前的方法就很难完成了。这时可以使用Qt提供的图形视图框架来进行设计。
图形视图框架提供了一个基于图形项的模型视图编程方法,主要由场景、视图和图形项三部分组成,这三部分分别由QGraphicsScene,QGraphicsView和 QGraphicsItem这3个类来表示。多个视图可以查看一个场景,场景中包含各种各样几何形状的图形项。
图形视图框架可以管理数量庞大的自定义2D图形项,并且可以与它们进行

以上是关于Qt基础之二十九:图形视图框架(Graphics View Framework)及其应用的主要内容,如果未能解决你的问题,请参考以下文章

Qt系列文章之二十九(基于QThread的掷骰子线程实例讲解)

Qt系列文章之二十九(基于QThread的掷骰子线程实例讲解)

Qt基础之二十一:QtRO(Qt Remote Object)实现进程间通信

Qt基础之二十一:QtRO(Qt Remote Object)实现进程间通信

Qt图形视图体系结构

Qt基础之二十:进程间通信