我们前面用基本的绘图类实现了一个绘图软件,但是,我们无法做出像Word或者Flash中那样,绘制出来的图形可以作为一个元件进行任意变形。我们要想很容易地做出那样的效果,就要使用Qt中的图形视图框架。
The QGraphics View Framework(图形视图框架),在Qt Creator中的帮助里可以查看它的介绍,当然那是英文的,这里有一篇中文的翻译,大家可以看一下:Qt的graphics View框架
如果你的程序中要使用大量的2D图元,并且想要这些图元都能进行单独或群组的控制,你就要使用这个框架了。比方说像Flash一样的矢量绘图软件,各种游戏软件。但是因为这里涉及的东西太多了,不可能用一两篇文章就介绍清楚,所以这里我们只是提及一下,让一些刚入门的朋友知道有这样一个可用的框架。
最简单的使用:
The QGraphics View Framework包含三个大类:QGraphicsItem 项类(或者叫做图元类),QGraphicsScene 场景类,和QGraphicsView 视图类。
QGraphicsItem 用来绘制你所要用到的图形,QGraphicsScene 用来包含并管理所有的图元,QGraphicsView 用来显示所有场景。而他们三个都拥有自己各自的坐标系统。我们下面就来建立一个工程,完成一个最简单的例子。
1.新建空的Qt工程:
2.更改工程名和存放路径。
3.然后新建C++类。
4.更改类名为MyItem,基类填写为QGraphicsItem,如下图:
5.可以看到新建的类默认已经添加到了工程里。
6.新建C++ Source File,更改名字为main.cpp,如下图:
7.然后更改各文件的内容。
更改完成后,myitem.h文件内容如下:
myitem.cpp文件的内容如下:
main.cpp的内容如下:
运行程序,最终效果如下:
这里我们只是演示了一下使用这个框架完成最简单的程序的过程,只起到抛砖引玉的作用。
这个框架很复杂,但是功能也很强大,Qt Creator中自带了几个相关的例子(在帮助中查找Graphics View Examples即可),你可以参考一下。因为篇幅问题,我们就只讲这么多,如果以后有机会,我会推出一个相关的专题来讲述这个框架。
因篇幅问题不能全部显示,请点此查看更多更全内容