第5篇 基础(五)Qt布局管理器
Qt布局管理器版权声明该文章原创于Qter开源社区(www.qter.org),作者yafeilinux,转载请注明出处!
导语 在前一篇中我们学习了使用资源文件为主窗口添加菜单图标。这次,我们先将菜单进行完善,然后讲解一些布局管理方面的内容。一个软件不仅要有强大的功能,还要有一个美观的界面,布局管理器就是用来对界面部件进行布局管理的。这一节将简单介绍一下Qt的布局方面的应用,大家可以以此类推,学习使用其他布局部件。
环境是:Windows 7 + Qt 4.8.1 +Qt Creator 2.4.1
目录一、完善菜单二、向工具栏添加菜单图标三、布局管理器
正文
一、完善菜单
1.新建Qt Gui应用,项目名称为myMainWindow,基类选择QMainWindow,类名为MainWindow。
2.完成后,在设计模式添加菜单项,并添加资源文件,向其中添加菜单图标。最终各个菜单如下图所示。
在Action编辑器中修改动作的对象名称、图标和快捷键,最终如下图所示。
二、向工具栏添加菜单图标
可以将动作编辑器中的动作拖动到工具栏中作为快捷图标使用,如下图所示。
可以在工具栏上点击鼠标右键来添加分隔符,如下图所示。
最终工具栏如下图所示。
三、布局管理器
1.从左边控件栏中拖入三个按钮Push Button和一个Vertical Layout(垂直布局管理器)到界面上,如下图所示。
然后将三个按钮拖入到布局管理器中,这时三个按钮就会自动垂直排列,并且进行水平拉伸,无论如何改变布局管理器的大小,按钮总是水平方向变化。如下图所示。
2.我们可以选中布局管理器,然后按下上方工具栏中的“打破布局”按钮来删除布局管理器。(当然也可以先将三个按钮移出,然后按下Delete键来删除布局管理器,如果不移出按钮,那么会将它们同时删除。)如下图所示。
3.下面我们使用分裂器(QSplitter)来进行布局,先同时选中三个按钮,然后按下上方工具栏中的“使用分裂器垂直布局”按钮,如下图所示。
然后我们进行放大,可以发现,使用分裂器按钮纵向是可以变大的,这就是分裂器和布局管理器的重要区别。如下图所示。
4.布局管理器除了可以对部件进行布局以外,还有个重要用途,就是使部件随着窗口的大小变化而变化。我们删除界面上的部件,然后拖入一个文本编辑器Text Edit部件。如下图所示。
然后我们在界面上点击鼠标右键,选择布局→栅格布局(或者使用快捷键Ctrl+G)。
这时整个文本编辑器部件就会填充中央区域。如下图所示。现在运行程序,可以发现,无论怎样拉伸窗口,文本编辑器总是填充整个中央区域。
这一篇中我们主要介绍了布局管理器的应用,而且都是在设计模式对布局管理器的使用。这里使用三种方式进行了演示:从控件栏中拖入布局管理器;在工具栏中使用图标;还有使用右键菜单(当然还有快捷键的方式)。
结语 在本篇中主要对垂直布局管理器进行了演示,大家还可以使用其他的布局管理器进行测试。对于如何在代码中使用布局管理器,以及使用布局管理器实现可隐藏窗口,可以参考《Qt Creator快速入门》一书的相关章节。
涉及到的源码下载:
上一篇:第4篇 添加菜单图标——使用Qt资源文件
下一篇:第6篇 实现Qt文本编辑功能
返回:系列教程目录
新人,多多关照哦!
新人,多多关照哦!
新人,多多关照哦!
新人,多多关照哦! 楼主发的这个系列文章 能不能弄一个目录哦 不然查看起来 比较辛苦 ds4fdsf4444 发表于 2013-7-29 15:35 static/image/common/back.gif
楼主发的这个系列文章 能不能弄一个目录哦 不然查看起来 比较辛苦
有的啊:http://www.qter.org/forum.php?mod=viewthread&tid=193 楼主能不能提供你的图标文件下载? agehacat 发表于 2013-8-3 19:32 static/image/common/back.gif
楼主能不能提供你的图标文件下载?
原来在代码的文件下载里有 由浅入深,很棒的教程啊 怎么让mainwidow.ui 文件与ui_mainwidow.h 同步
我是先直接创的.ui 不想每设计一次都去用uic -o qq897425998 发表于 2013-8-11 23:02 static/image/common/back.gif
怎么让mainwidow.ui 文件与ui_mainwidow.h 同步
我是先直接创的.ui 不想每设计一次都去用uic -o...
不用啊,你不是用Qt Creator吗,他们是自动编译的,直接运行即可。
如何你用的是命令行,那个没有办法,或者你可以写个脚本。 QT5.1的版本,怎么菜单下拉部分不能直接输入中文啊。 必须要外面输入完毕copy进去才可以。。郁闷啊 TigerQter 发表于 2013-8-14 14:38 static/image/common/back.gif
QT5.1的版本,怎么菜单下拉部分不能直接输入中文啊。 必须要外面输入完毕copy进去才可以。。郁闷啊 ...
嗯。Qt 5现在还有很多地方不是很完善! yafeilinux 发表于 2013-8-11 23:04 static/image/common/back.gif
不用啊,你不是用Qt Creator吗,他们是自动编译的,直接运行即可。
如何你用的是命令行,那个没有办法, ...
请教个问题
我是qt5.1的版本
从附件下载下来打开run会显示:-1: error: No rule to make target '../mymainwindow/mymainwindow.ui', needed by 'ui_mymainwindow.h'.Stop.
这个如何处理?
wlmzyy 发表于 2013-9-1 08:04 static/image/common/back.gif
请教个问题
我是qt5.1的版本
从附件下载下来打开run会显示:-1: error: No rule to make target '../myma ...
嗯,源码用Qt 5.1重新编译了一下,你重新下载试试。 yafeilinux 发表于 2013-9-2 14:32 static/image/common/back.gif
嗯,源码用Qt 5.1重新编译了一下,你重新下载试试。
已经可以了
非常感谢:) 原来工具栏上的快捷图标就是拖上去的。。前一段时间一入手就在看那本开发实战精解,结果很多都不会做,只好能从入门开始:lol。
每天看一篇教程,应该不慢的吧:lol 这一节碰到以下问题,不知道啥回事。但是不影响编译结果
:-1: 警告:Qmake不支持源文件目录下的构建目录。 lzerof 发表于 2013-10-5 01:22 static/image/common/back.gif
这一节碰到以下问题,不知道啥回事。但是不影响编译结果
:-1: 警告make不支持源文件目录下的构建目录。 ...
你更改默认的构建目录了? yafeilinux 发表于 2013-10-5 09:40 static/image/common/back.gif
你更改默认的构建目录了?
我不确认,构建目录在哪儿更改? lzerof 发表于 2013-10-5 10:23 static/image/common/back.gif
我不确认,构建目录在哪儿更改?
创建项目的时候啊。 图标文件的大小有什么要求吗