## 11.2在 Qt Designer 中使用布局
为了确保界面元素在应用程序程序在运行时或被预览时的各种状态下都能够正常显示,我们需要把它们放进布局当中去。
### 11.2.1 应用和破除布局
应用布局的最简单做法是选中界面元素,使用工具栏上的按钮、鼠标右键的上下文菜单,以及【Form】菜单都可以实现。
一旦界面元素被放进一个布局之中,它就不能单独自由行动了 -你不可以单独改变它的 大小,因为布局接管了这一工作,它控制了位于其中的界面元素的几何以及间隔器的大小策 略提示(size hint)。所以你要么破除布局,人工调整界面元素的大小,要么通过调整布 局的大小来间接调整界面元素的大小。
要破除一个布局,可以使用快捷键 Ctrl+0 或者通过鼠标右键上下文菜单以及主菜单项 或工具栏按钮。在一个布局完成之后,你仍然可以向其中添加或删除间隔器来影响布局内部 的窗口部件的几何,最为便捷的方式是从部件选择器中拖出一个间隔器,并把它拖入到布局 之中,删除的时候则相反,把间隔器从布局中拖出来即可。
1\. 向布局中增加窗口部件
如图 11-11 所示,要向一个已经存在的布局中增加窗口部件,只需要选中并拖动该窗口部件,把它从当前位置拖进布局之中,并在认为合适的位置放开鼠标。注意,当你的拖动 窗口部件在布局上方停留时,布局内部会显示一条蓝色的线,它提示了你的窗口部件未来在布局中的位置。
![](https://box.kancloud.cn/2016-01-22_56a1a1582c57b.png)
图 11-11 向布局中增加窗口部件
2\. 设置一个顶级布局(Top Level Layout) 设置界面的顶级布局是很有必要的,它能确保窗口界面元素在应用程序的各种状态下均能够保持适当的大小。
要设置顶级布局,需要用鼠标左键选中该 Form,然后使用快捷键或工具栏或者主菜单 项来选中一种布局。
如何验证已经设置了顶级布局呢,简单的做法就是在 Qt Designer 的预览窗口(按下 Ctrl+R 键)中,使用鼠标左键拖动窗口的边缘手柄,查看界面元素的变化情况。如果一切 正常,那就表示你已经设置过了。还有一种做法,就是用鼠标左键点击界面表单(你的 Form),然后在对象查看器中,如果看到 Form 前面有常见的几种布局图标之一(图 11-12 中是垂直布局),那么就表示你已经设置了顶级布局,如图 11-12 所示;反之,如果 Form 前面的图标右下角带有一个红色的停止标志,就表示还没有设置顶级布局,如图 11-13 所 示。
![](https://box.kancloud.cn/2016-01-22_56a1a1583a88e.png)
图 11-12 在对象查看器中浏览顶级布局-存在顶级布局
![](https://box.kancloud.cn/2016-01-22_56a1a15846b55.png)
图 11-13 在对象查看器中浏览顶级布局-不存在顶级布局
3\. 应用一个布局
要应用一个布局,你可以使用工具栏上的按钮,如图 11-14 所示,也可以使用鼠标右键的上下文菜单,如图 11-15 所示。
![](https://box.kancloud.cn/2016-01-22_56a1a15854825.png)
图 11-14 使用工具栏按钮应用一个布局
![](https://box.kancloud.cn/2016-01-22_56a1a15862425.png)
图 11-15 使用鼠标右键的上下文菜单来应用一个布局
### 11.2.2 快捷键
除了使用标准工具栏以及上下文菜单,我们还可以使用快捷键来对布局进行操作。表 11-3 显示了常见的布局操作所对应的快捷键。
表 11-3 布局的快捷键
| 布局 | 快捷键 | 说明 |
| --- | --- | --- |
| 水平布局 | Ctrl+1 | 将选中的界面元素置于一个水平布局中 |
| 垂直布局 | Ctrl+2 | 将选中的界面元素置于一个垂直布局中 |
| 栅格布局 | Ctrl+5 | 将选中的界面元素置于一个栅格布局中 |
| 表单布局 | Ctrl+6 | 将选中的界面元素置于一个表单布局中 |
| 分裂器水平布局 | Ctrl+3 | 创建一个分裂器水平布局,并将选中的界面元素置于其中 |
| 分裂器垂直布局 | Ctrl+4 | 创建一个分裂器垂直布局,并将选中的界面元素置于其中 |
| 调整大小 | Ctrl+J | 调整布局的大小,以使得位于其中的元素能够恰当的显示自身内容。关于这方面的内容,可以参见 QWidget::adjustSize()函数 |
| 破除布局 | Ctrl+0 | 破除选中的布局 |
- 第 1 章 走近 Qt
- 1.1 Qt 简介
- 1.2 Qt 纪事概览
- 1.3 Qt 套件的组成(以 Qt4.5 为准)
- 1.4 Qt 的授权
- 1.5 Qt 的产品
- 1.6 Qt 的服务与支持
- 1.7 Qt 的最新进展
- 1.8为什么选择 Qt
- 1.9 问题与解答
- 1.10 总结与提高
- 第 2 章 Qt 的安装与配置
- 2.1 获取 Qt
- 2.2 协议说明
- 2.3 安装 Qt
- 2.4 配置 Qt4 环境
- 2.5 问题与解答
- 2.6 总结与提高
- 第 3 章 Qt 编程基础
- 3.1 标准 C++精讲
- 3.2 Windows 编程基础
- 3.3 Linux 编程基础
- 3.4 Mac 编程基础
- 3.5 问题与解答
- 3.6 总结与提高
- 第 4 章 Qt 4 集成开发环境
- 4.1 常见的 Qt IDE
- 4.2 Qt Creator
- 4.3 Eclipse
- 4.5 问题与解答
- 4.6 总结与提高
- 第 5 章 使用 Qt 基本 GUI 工具
- 5.1 使用 Qt Designer 进行 GUI 设计
- 5.2 使用 Qt Assistant 获取在线文档与帮助
- 5.3 使用 Qt Demo 学习 Qt 应用程序开发
- 5.4 问题与解答
- 5.5 总结与提高
- 第 6 章 Qt 4 程序开发方法和流程
- 6.1 开发方法
- 6.2 Hello Qt
- 6.3 几个重要的知识点
- 6.4 问题与解答
- 6.5 总结与提高
- 第 7 章 对话框
- 7.1 QDialog 类
- 7.2 子类化 QDialog
- 7.3 快速设计对话框
- 7.4 常见内建(built in)对话框的使用
- 7.5 模态对话框与非模态对话框
- 7.6 问题与解答
- 7.7 总结与提高
- 第 8 章 主窗口
- 8.1 主窗口框架
- 8.2 创建主窗口的方法和流程
- 8.3 代码创建主窗口
- 8.4 使用 Qt Designer 创建主窗口
- 8.5 中心窗口部件专题
- 8.6 Qt4 资源系统专题
- 8.7 锚接窗口
- 8.8 多文档
- 8.9 问题与解答
- 8.10 总结与提高
- 第 9 章 Qt 样式表与应用程序观感
- 9.1 应用程序的观感
- 9.2 QStyle 类的使用
- 9.3 样式表概述
- 9.4 使用样式表
- 9.5 问题与解答
- 9.6 总结与提高
- 第 10 章 在程序中使用.ui 文件
- 10.1 uic 的使用
- 10.2 Ui_YourFormName.h 文件的组成
- 10.3 编译时加入处理.ui 文件的方法
- 10.4 运行时加入处理.ui 文件的方法
- 10.5 信号与槽的自动连接
- 10.6 问题与解答
- 10.7 总结与提高 本章主要讲解了以下内容:
- 第 11 章 布局管理
- 11.1 基本概念和方法
- 11.2在 Qt Designer 中使用布局
- 11.3 基本布局实践
- 11.4 堆栈布局
- 11.5 分裂器布局
- 11.6 自定义布局管理器
- 11.7 布局管理经验总结
- 11.8 问题与解答
- 11.9 总结与提高
- 第 12 章 使用 Qt Creator
- 12.1 Qt Creator 概览
- 12.2 Qt Creator 的组成
- 12.3 快捷键和常用技巧
- 12.4 Qt Creator 构建系统的设置
- 12.5 处理项目间依赖关系( Dependencies )
- 12.6 Qt 多版本共存时的管理
- 12.7 使用定位器在代码间快速导航
- 12.8 如何创建一个项目
- 12.9 实例讲解
- 12.10 使用 Qt Creator 调试程序
- 12.11 问题与解答
- 12.12 总结与提高
- 第 13 章 Qt 核心机制与原理
- 13.1 Qt 对标准 C++的扩展
- 13.2 信号与槽
- 13.3 元对象系统
- 13.4 Qt 的架构
- 13.5 Qt 的事件模型
- 13.6 构建 Qt 应用程序
- 13.7 总结与提高
- 附录 A qmake 使用指南
- A.1 qmake 简介
- A.2 使用 qmake
- 附录 B make 命令
- B.1 命令解释
- B.2 使用 make 自动构建
- 附录 C Qt 资源
- C.1Qt 官方资源
- C.2 Qt 开发社区