2010-08-16 63 views
170

我正在使用Qt设计器。使用Qt设计器自动扩展布局

我想创建一个QVBoxLayout,它将自动扩展以填充整个窗口。

QVBoxLayout的布局保持不变。

如何使QVBoxLayout扩展并通过设计器填充整个窗口?

+0

如果你只是想在Qt Designer中USET布局,请裁判吼叫提示:http://stackoverflow.com/questions/1508939/qt-layout-on-qmainwindow – 2013-07-08 05:23:27

回答

279

创建后您在Qt设计QVBoxLayout,在你的widget /对话框/窗口的背景(不是QVBoxLayout,但父控件)右键单击并选择布局 - 从>奠定了在网格上下文菜单的底部。 QVBoxLayout现在应该拉伸以适应窗口,并在整个窗口调整大小时自动调整大小。

+0

是的,我明白了。但这是一个错误的默认值。将'QVBoxLayout'拖到主窗口小部件时会发生什么? – 2010-08-16 15:02:54

+4

谢谢,我一直在寻找解决这个问题的方法。 – 2010-09-17 11:43:02

+25

其实,你根本不需要创建网格布局。不要自己创建一个QVBoxLayout,取消选择所有项目并单击小部件的背景。然后选择布局 - >垂直布局。 – 2011-01-12 20:57:58

0

一旦你添加了至少有一个小部件的布局,选择你的窗口,然后点击QtDesigner的“更新”按钮。界面将以最优化的尺寸调整大小,并且您的布局将适合整个窗口。然后,在调整窗口大小时,布局将以相同的方式调整大小。

+0

我彪,当用户调整整个窗口的大小,垂直布局(以及其内容)将伸展以适应它。我不在乎它在Qt Designer中的外观。 – 2010-08-16 13:37:44

2

我试图找到一个“适合屏幕”属性,但没有这样的。

但是,将小部件的“maximumSize”设置为“某个大数字”(如2000 x 2000)将自动使小部件适合父小部件空间。

+1

当您尝试接受的解决方案时会发生什么? – 2011-01-10 06:01:00

+4

在配备Retina Display(2880x1800)的MacBook Pro上使用此技术会发生什么? – 2012-11-20 04:57:21

+1

只需将其设置为它将接受的最大数量(哪个Designer显示给我的是16777215),并且它应该适用于任何显示器大小。 – andreb 2013-08-17 21:17:15

-3

将控件/小部件的Horizo​​ntalPolicy设置为“首选”

9

根据documentation,需要有顶层布局集。

顶层布局对于确保您的小部件在其窗口大小调整时将正确调整大小是必需的。要检查您是否设置了顶层布局,请预览您的窗口小部件并尝试通过拖动窗口大小来调整窗口大小。

您可以通过清除选择并右键单击表单本身并选择上下文菜单中可用的布局之一来设置其中一个。

Qt layouts