欢迎来到天天文库
浏览记录
ID:34388935
大小:3.56 MB
页数:47页
时间:2019-03-05
《qt绘图软件设计教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、yafeilinux作品http://hi.csdn.net/yafeilinuxhttp://hi.baidu.com/yafeilinux开源,共享,自由Qt画图软件设计教程前面学习了Qt2D绘图的基本知识,现在我们将所学习的知识进行一下综合,设计一个简单的画图软件。因为前面已经有了记事本的例子,所以这里对一些细节知识将不会多讲。而且,这只是个例子,说是软件,其实只是个较大点的程序而已,并不是实际的项目,所以通过这个例子,我们主要为了掌握一个方法和两个知识点。一个方法:写较复杂程序的方法。两个知识点:文件菜
2、单的功能实现和利用双缓冲进行绘图。这个例子共分为三部分进行介绍:第一部分:进行软件界面的设计。其中一些知识可以参考我博客中的Qt教程四。第二部分:实现基本的功能,这里会再次详细介绍文件菜单中新建,打开,保存,另存为,关闭等菜单的功能实现。这里你可以参考我博客中的Qt教程六。第三部分:我们在这里会详细讲解所谓的双缓冲绘图,利用它实现图形(例如矩形,椭圆)的交互式绘制。第一部分:设计界面在windows上自带了画图软件,在QtCreator中也有个绘图软件的例子scribbleexample,你可以在帮助中进行查看
3、。而现在我们要写的绘图程序的例子,也应该包含这些功能,如绘画涂鸦,添加直线或矩形等常用图形,可以插入图片,在图片上进行绘画,可以让它缩放,旋转,拉伸等。想到了这些功能,我们就可以设计软件的界面了。一.设计菜单1.在QtCreator中新建Qt4GuiApplication工程,我这里使用的工程名为paint,使用默认的QMainWindow作为主窗口。2.为了让程序中可以使用中文,我们先在main.cpp中加入头文件#include,并加入下面一行代码:QTextCodec::setCo
4、decForTr(QTextCodec::codecForLocale());3.打开mainwindow.ui,先设计菜单。依次是文件菜单,编辑菜单,工具菜单和帮助菜单。其内容分别如下:文件菜单编辑菜单工具菜单帮助菜单第1页,共47页yafeilinux作品http://hi.csdn.net/yafeilinuxhttp://hi.baidu.com/yafeilinux开源,共享,自由4.向工程中添加资源文件,向其中添加要使用的菜单图标。添加完后记着保存一下资源文件,不然的话,在资源管理器中可能看不到添加
5、的图标。5.打开动作编辑器ActionEditor,编辑已添加的菜单动作。我们下面只介绍其中“新建”菜单的编辑,其余菜单照做就行了。双击action_N,弹出如下对话框:单击Icon后面的按钮,弹出资源管理器:第2页,共47页yafeilinux作品http://hi.csdn.net/yafeilinuxhttp://hi.baidu.com/yafeilinux开源,共享,自由我们点击上面的Reload,便能显示出我们已经添加的图标,我们选中其中的新建菜单的图标,点击Ok确认,如下图所示:添加完图标后,我们
6、单击一下快捷键Shortcut后面的输入框,然后同时按下Ctrl键和N键,这样就将新建菜单的快捷键设为了Ctrl+N,如下图所示:然后我们再在右面的属性窗口中更改statusTip的内容为“新建文件”,这样在鼠标放在新建菜单上是,状态栏就会显示“新建文件”。如下图:我们按照同样的方法设置其它菜单,设置完成后如下图所示:第3页,共47页yafeilinux作品http://hi.csdn.net/yafeilinuxhttp://hi.baidu.com/yafeilinux开源,共享,自由6.我们把其中的一些图
7、标放到工具栏上,如下图所示:这样就完成了菜单的设计。二.添加绘图工具栏我们这里的绘图工具栏使用的是一种叫做Dock的窗口,它与其它窗口的不同就是它可以在其父窗口中浮动,也可以停靠在父窗口的边界,就像一个工具栏一样。1.我们在左边的部件栏中找到DockWidget,将其拖入到设计区。添加后它默认在左边框上停靠着。如下图:第4页,共47页yafeilinux作品http://hi.csdn.net/yafeilinuxhttp://hi.baidu.com/yafeilinux开源,共享,自由2.我们在其属性栏里将
8、其windowTitle改为“画图工具”。3.向其中拖入相关部件,效果如下图:其中,“画笔线宽”下的部件为SpinBox,其属性中的objectName为penWidthSpinBox,属性栏最下面的minimum属性改为1,即最小值为1。其余部件均为组合框ComboBox,objectName依次为:选择图形:shapeComboBox画笔类型:penStyleComboBox画笔颜
此文档下载收益归作者所有