Qt Widgets Designer

在使用表单之前,需要将表单中的对象放入布局中。这样可以确保在预览表单或在应用程序中使用表单时正确显示对象。在布局中放置对象还可以确保在调整表单大小时正确调整对象的大小。

一旦将部件插入布局,就无法单独移动和调整它们的大小,因为布局本身会根据间隔器提供的提示来控制其中每个部件的几何形状。可以将间隔器添加到布局中,以影响部件的几何形状。

布局可以嵌套以形成层次结构。例如,要实现带有一排水平按钮的典型对话框布局,可以使用垂直方框布局来布局对话框元素,并在底部使用包含按钮的水平方框布局。有关 Qt 布局系统的介绍,请参阅布局管理

要中断布局,请按Ctrl+0或从窗体的上下文菜单、窗体菜单或主工具栏中选择中断布局

设置顶层布局

可以通过清除选区(在表单上单击鼠标左键)和应用布局来设置表单的顶层布局。顶层布局是确保窗口大小调整时窗口部件大小正确的必要条件。要检查您是否设置了顶层布局,请预览您的窗口小部件,并尝试通过拖动尺寸抓手来调整窗口大小。

应用布局

要应用布局,可从左侧工具栏或下图所示的上下文菜单中选择布局。

同样,顶层布局可分别设置在容器部件(QGroupBox )或基于页面的容器部件(QTabWidgetQToolBoxQStackedWidget )的页面上。需要选择容器部件才能成功设置。

在 "对象检查器 "中,顶层布局不能作为单独的对象显示。它们的属性显示在属性编辑器中主窗体、容器部件或容器部件页面的部件属性下方。

布局对象

布局对象是通过将布局应用于一组现有对象而创建的。方法是选择需要管理的对象,然后使用主工具栏、表单菜单或表单的上下文菜单应用其中一种标准布局。

布局对象在表单上用红色框表示,并作为一个对象出现在对象检查器中。其属性(边距和约束)显示在属性编辑器中。

可以选择布局对象,并将其与其他部件和布局对象一起放置在另一个布局中,以建立布局层次结构。

选中子布局对象后,按住Shift键的同时还可以选中其父布局对象。这样就可以在层次结构中选择特定的布局,否则由于框架较小,很难做到这一点。

在布局中插入对象

将对象从其当前位置拖到所需位置后,即可将其插入现有布局中。拖动对象时,布局中会显示一个蓝色光标,指示对象的添加位置。

在布局中插入对象

布局类型

水平和垂直(方框)布局

在表单上排列对象的最简单方法就是将它们置于水平或垂直布局中。水平布局可确保其中的部件水平对齐;垂直布局可确保部件垂直对齐。

水平和垂直布局可以任意组合和嵌套。不过,如果需要对对象的位置进行更多控制,可以考虑使用网格布局。

网格布局

通过在网格布局中放置对象,可以创建复杂的表单布局。这种布局为表单设计者在表单上安排部件提供了更大的自由度,但可能导致布局的灵活性大大降低。不过,对于某些类型的表单布局,网格布局要比水平和垂直布局的嵌套布局更合适。

表单布局

QFormLayout 类管理双栏表单中的部件;左栏放置标签,右栏放置字段部件,如行编辑、旋转框等。QFormLayout 类遵守各种平台的外观和感觉准则,并支持长行包装。

上述用户界面文件的预览结果如下所示。

Windows XPMacOS清洁外观

分割器布局

管理表单上对象布局的另一种常用方法是将它们放置在分割器中。这些分割器以与普通布局相同的方式水平或垂直排列对象,但也允许用户调整分配给每个对象的空间大小。

虽然QSplitter 是一个容器部件,但Qt Widgets Designer 将分割器对象视为应用于现有部件的布局。要将一组部件放入分割器,请按此处所述选择它们,然后使用相应的工具栏按钮、键盘快捷键或"布局 "上下文菜单项应用分割器布局。

快捷键

除了标准工具栏和上下文菜单项,还有一组键盘快捷键可用于在部件上应用布局。

布局快捷键说明
横向Ctrl+1将所选对象置于水平布局中。
垂直Ctrl+2将所选对象置于垂直布局中。
网格Ctrl+5将所选对象置于网格布局中。
表格Ctrl+6将所选对象置于表格布局中。
水平分割器Ctrl+3创建水平分割器并将选定对象置于其中。
垂直分割器Ctrl+4创建垂直分割器,并将选定对象置于其中。
调整大小Ctrl+J调整布局的大小,确保每个子对象都有足够的空间显示其内容。有关更多信息,请参阅QWidget::adjustSize() 。

注: Ctrl+0用于中断布局。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.