在可以使用表单之前,需要将表单上的对象放入布局中。这可确保在预览或在应用程序中使用表单时正确显示对象。将对象放置在布局中还可以确保在调整表单大小时正确调整它们的大小。
一旦小部件被插入到布局中,就不可能单独移动和调整它们的大小,因为布局本身控制其中每个小部件的几何形状,并考虑到了间隔提供的提示。可以将垫片添加到布局中以影响小部件的几何形状。
可以嵌套布局以形成层次结构。例如,要实现具有水平按钮行的典型对话框布局,可以使用垂直框布局和包含底部按钮的水平框布局来布局对话框元素。有关 Qt 布局系统的介绍,请参阅布局管理。
要中断布局,请按Ctrl+0或从表单的上下文菜单、表单菜单或主工具栏中选择中断布局。
设置顶层布局
可以通过清除选择(在表单本身上单击鼠标左键)并应用布局来设置表单的顶级布局。顶层布局是必要的,以确保您的小部件在调整其窗口大小时能够正确调整大小。要检查您是否设置了顶级布局,请预览您的小部件并尝试通过拖动大小夹来调整窗口大小。
应用布局:要应用布局,您可以从左侧显示的工具栏中或从下面显示的上下文菜单中选择布局。
同样,顶级布局分别设置在容器小部件(QGroupBox)或基于页面的容器小部件(QTabWidget、QToolBox和QStackedWidget)的页面上。需要选择容器小部件才能成功。
顶级布局在对象检查器中不作为单独的对象可见。它们的属性显示在属性编辑器中主窗体、容器小部件或容器小部件页面的小部件属性下方。
布局对象
布局对象是通过将布局应用于一组现有对象来创建的。这是通过选择您需要管理的对象并使用主工具栏、表单菜单或表单的上下文菜单应用标准布局之一来实现的。
布局对象由表单上的红框指示,并在对象检查器中显示为对象。它的属性(边距和约束)显示在属性编辑器中。
可以选择布局对象并将其与其他小部件和布局对象一起放置在另一个布局中以构建布局层次结构。
当一个子布局对象被选中时,它的父布局对象可以通过按住Shift键并单击它来选择。这使得在层次结构中选择特定布局成为可能,否则由于框架小,这很困难。
将对象插入布局
通过将对象从当前位置拖放到所需位置,可以将对象插入到现有布局中。将对象拖到布局上时,布局中会显示一个蓝色光标,以指示将添加对象的位置。
布局类型
水平和垂直(框)布局
在表单上排列对象的最简单方法是将它们放置在水平或垂直布局中。水平布局确保其中的小部件水平对齐;垂直布局确保它们垂直对齐。
水平和垂直布局可以组合并嵌套到任何深度。但是,如果您需要对对象的放置进行更多控制,请考虑使用网格布局。
网格布局
可以通过将对象放置在网格布局中来创建复杂的表单布局。这种布局给表单设计者更多的自由来安排表单上的小部件,但会导致布局不太灵活。但是,对于某些类型的表单布局,网格排列比水平和垂直布局的嵌套排列更合适。
表单布局
QFormLayout类以两列形式管理小部件;左列包含标签,右列包含字段小部件,例如行编辑、旋转框等。QFormLayout类遵循各种平台外观指南并支持长行的换行。
上面的 UI 文件会产生如下所示的预览。
分离器布局
管理表单上对象布局的另一种常用方法是将它们放在拆分器中。这些拆分器以与正常布局相同的方式水平或垂直排列对象,但也允许用户调整分配给每个对象的空间量。
尽管QSplitter是一个容器widget,但Qt Designer将拆分器对象视为应用到现有widgets上的布局。要将一组widgets放入拆分器,请按照此处所述选择它们,然后使用相应的工具栏按钮、键盘快捷键或布局上下文菜单条目应用拆分器布局。
快捷键
除了标准工具栏和上下文菜单条目外,还有一组键盘快捷键可以在widgets上应用布局。