说明:这是我们Qt系列文章的一个例子,请先学习2D绘图部分内容,再学习本教程
前面学习了Qt 2D绘图的基本知识,现在我们将所学习的知识进行一下综合,设计一个简单的画图软件。
因为前面已经有了记事本的例子,所以这里对一些细节知识将不会多讲。而且,这只是个例子,说是软件,其实只是个较大点的程序而已,并不是实际的项目,所以通过这个例子,我们主要为了掌握一个方法和两个知识点。
一个方法:写较复杂程序的方法。
两个知识点:文件菜单的功能实现和利用双缓冲进行绘图。
这个例子共分为三部分进行介绍:
第一部分:进行软件界面的设计。其中一些知识可以参考我博客中的Qt教程四。
第二部分:实现基本的功能,这里会再次详细介绍文件菜单中新建,打开,保存,另存为,关闭等菜单的功能实现。这里你可以参考我博客中的Qt教程六。
第三部分:我们在这里会详细讲解所谓的双缓冲绘图,利用它实现图形(例如矩形,椭圆)的交互式绘制。
第一部分:设计界面
在windows上自带了画图软件,在Qt Creator中也有个绘图软件的例子scribble example,你可以在帮助中进行查看。
而现在我们要写的绘图程序的例子,也应该包含这些功能,如绘画涂鸦,添加直线或矩形等常用图形,可以插入图片,在图片上进行绘画,可以让它缩放,旋转,拉伸等。想到了这些功能,我们就可以设计软件的界面了。
一.设计菜单
在QtCreator中新建Qt4 Gui Application工程,我这里使用的工程名为paint,使用默认的QMainWindow作为主窗口。
为了让程序中可以使用中文,我们先在main.cpp中加入头文件#include ,
并加入下面一行代码:QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
打开mainwindow.ui,先设计菜单。依次是文件菜单,编辑菜单,工具菜单和帮助菜单。其内容分别如下:
文件菜单
编辑菜单
工具菜单
帮助菜单