• 10728阅读
  • 1回复

二十、Qt 2D绘图(十)图形视图框架简介(原创) [复制链接]

上一主题 下一主题
离线yafei86
 
只看楼主 倒序阅读 楼主  发表于: 2010-02-21
声明:本文原创于yafeilinux的百度博客,http://hi.baidu.com/yafeilinux 转载请注明出处。

我们前面用基本的绘图类实现了一个绘图软件,但是,我们无法做出像Word或者Flash中那样,绘制出来的图形可以作为一个元件进行任意变形。我们要想很容易地做出那样的效果,就要使用Qt中的图形视图框架。
The QGraphics View Framework(图形视图框架),在Qt Creator中的帮助里可以查看它的介绍,当然那是英文的,这里有一篇中文的翻译,大家可以看一下:
http://hi.baidu.com/yafeilinux/blog/item/f7040630723a0612eac4af20.html
如果你的程序中要使用大量的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即可),你可以参考一下。因为篇幅问题,我们就只讲这么多,如果以后有机会,我会推出一个相关的专题来讲述这个框架。
欢迎访问我们的网站:www.yafeilinux.com
离线neil-wen

只看该作者 1楼 发表于: 2013-08-18
不错
快速回复
限100 字节
 
上一个 下一个