在使用窗体之前,需要将窗体上的对象放置到布局中。这确保了在预览窗体或在应用程序中使用窗体时,对象将正确显示。在布局中放置对象还可以确保在调整窗体大小时正确调整对象大小。
1、应用和打破布局
管理对象的最简单方法是将布局应用于一组现有对象。通过使用主工具栏、窗体菜单或窗体的上下文菜单选择需要管理的对象并应用其中一个标准布局,可以实现这一点(如图1)。
图1 布局应用选项位置
一旦将小部件插入到布局中,就不可能单独移动和调整它们的大小,因为布局本身控制其中每个小部件的几何结构,同时考虑到间隔符提供的提示。相反,您必须打破布局并手动调整每个对象的几何体,或者通过调整布局大小来影响小部件的几何体。
要打破布局,请按Ctrl+0或从窗体的上下文菜单、窗体菜单或主工具栏中选择“打破布局”。您还可以在布局中添加和删除间隔符,以影响小部件的几何结构。
将对象插入到布局中
通过将对象从当前位置拖动到所需位置,可以将对象插入到现有布局中。当一个对象拖动到布局上时,将在布局中显示一个蓝色光标(图2),以指示将在何处添加该对象。
图2 蓝色光标位置及添加对象位置操作步骤
2、设置顶层布局
可以通过清除选择(单击窗体本身上的鼠标左键)并应用布局来设置窗体的顶层布局。顶层布局是必要的,以确保小部件在调整窗口大小时能够正确调整大小。要检查是否设置了顶层布局,请预览小部件,并通过拖动尺寸夹点尝试调整窗口大小(图3)。
要应用布局,您可以从左侧显示的工具栏或下面显示的上下文菜单中选择布局。
3、水平和垂直布局(Vertical Layout and Horizontal Layout)
在窗体上排列对象的最简单方法是将它们放置在水平或垂直布局中。水平布局(图4)确保其中的小部件水平对齐;垂直布局确保它们垂直对齐。
图4 水平布局操作步骤
水平和垂直布局可以组合并嵌套到任何深度。但是,如果需要对对象的放置进行更多控制,请考虑使用网格布局。
4、栅格布局\网格布局(Grid Layout)
可以通过在网格布局中放置对象来创建复杂的网格布局(图5)。这种布局为网格设计
图5 网格布局操作步骤
者在网格上安排小部件提供了更多的自由,但可能会导致布局的灵活性大大降低。然而,对于某些类型的网格布局,网格布局比水平和垂直布局的嵌套布局更适合(图6)。
图6 布局嵌套
5、在窗体中布局中布局\表单布局(Form Layout)
QFormLayout类以两列形式管理小部件;左栏保存标签,右栏保存字段小部件,如行编辑、旋转框等。QFormLayout类遵循各种平台外观指南,并支持长行的换行。
上面的UI文件将产生如下所示的预览(图7)。
图7窗体布局中布局操作步骤
6、拆分器布局(Splitter Layouts)
管理窗体上对象布局的另一种常见方法是将它们放置在拆分器中。这些拆分器以与常规布局相同的方式水平或垂直排列对象,但也允许用户调整分配给每个对象的空间量。
虽然QSplitter是一个容器小部件,但Qt设计器将拆分器对象视为应用于现有小部件的布局。要将一组小部件放入拆分器,请按此处所述选择它们,然后使用相应的工具栏按钮、键盘快捷键或布局上下文菜单条目应用拆分器布局(图8)。
图8 垂直及水平拆分器使用
7、快捷键
除了标准工具栏和上下文菜单项外,还有一组键盘快捷键用于在小部件上应用布局。
布局
快捷键
描述
水平布局
Ctrl+1
将选定对象放置在水平布局中。
垂直布局
Ctrl+2
将选定对象放置在垂直布局中。
网格布局
Ctrl+5
将选定对象放置在网格布局中。
表单布局
Ctrl+6
将选定对象放置在表单布局中。
水平拆分器布局
Ctrl+3
创建水平拆分器并将选定对象放置在其中。
垂直拆分器布局
Ctrl+4
创建垂直拆分器并将选定对象放置在其中。
调整大小
Ctrl+J
调整布局的大小,以确保每个子对象都有足够的空间显示其内容。
8、参考资料
Qt帮助——Qt Designer Manual——Using Layouts in Qt Designer