【QT学习】Graphics View框架(基础篇)- 图元、场景、视图_qt中的场景类 图元类 视图类关系-CSDN博客
前言
在日常生活中,存在着许许多多的娱乐游戏。其中,大部分的游戏场景都是基于Graphics View框架,通过图元、场景、视图进行绘制和操控。
以拳皇97这款游戏为例,视图就是游戏窗口,场景就是游戏背景,图元就是游戏角色。我们在游戏过程中,通过选择游戏角色(图元)、游戏背景(场景),将游戏角色(图元)加载到游戏背景(场景)中进行操作,最后通过游戏窗口(视图)显示出来。
一、图元(QGraphicsItem)
图元(游戏角色),是组成图像的基本单元。我们经常通过引用头文件QGraphicsItem来创建图元,为方便我们绘制基本图像单元,QT Creator软件对QGraphicsItem类进行派生,如下表格所示:
二、场景(QGraphicsScene)
场景(游戏背景),可视为一个图元容器用来管理创建出的大量的图元item。我们经常通过引用头文件QGraphicsScene来创建场景,并使用类中addItem(QGraphicsItem *item)方法将图元添加到场景中。特别注意:QGraphicsScene创建的场景没有自己可见的外观,只负责用来管理创建的图元item,需要配合QGraphicsView创建的视图对场景中的图元进行可视化。
三、视图(QGraphicsView)
视图(游戏窗口),为QGraphicsScene内容提供一个显示的窗口,在构造时候把场景对象作为参数,或者创建后使用setScene()来设置view的场景。QGraphicsView继承了QWidget类,使其具有窗口类的一切方法。
四、简单应用——在窗口中绘制矩形
这是在QT Creator中,通过图元、场景、视图的组合运用,在QGraphicsView窗口中绘制一个矩形item。
1.完整代码
#include <QApplication>
#include <QGraphicsItem> //图元类头文件
#include <QGraphicsScene> //场景类头文件
#include <QGraphicsView> //视图类头文件
#include <QGraphicsRectItem> //矩形图元类头文件
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//创建视图
QGraphicsView *view = new QGraphicsView();
//创建场景,属性x,y,w,h分别为0,0,600,600
QGraphicsScene *scene = new QGraphicsScene(0,0,600,600);
//创建图元,属性x,y,w,h分别为100,100,300,300
QGraphicsRectItem *item = new QGraphicsRectItem(100,100,300,300);
//将图元添加到场景中
scene->addItem(item);
//将场景添加到视图中
view->setScene(scene);
//视图显示
view->show();
return a.exec();
}
2.实现效果
总结
以上就是Graphics View框架(基础篇):图元、场景和视图的介绍,以及三者组合绘制一个矩形图元的简单应用。