使用Qt-Designer自动展开布局


Answers:


366

QVBoxLayout在Qt Designer中创建后,右键单击窗口小部件/对话框/窗口(不是QVBoxLayout,而是父窗口小部件)的背景,然后从上下文菜单底部选择“ 布局”->“在网格中布局”。现在QVBoxLayout应该拉伸以适合窗口,并在调整整个窗口的大小时自动调整大小。


6
谢谢,我也一直在寻找解决这个问题的方法。
Simon H.

35
实际上,您根本不需要创建Grid布局。不用自己创建QVBoxLayout,而是取消选择所有项目,然后单击小部件的背景。然后选择布局->垂直布局。
Michal Kottman

3
@Michal Kottman:这仅在设计时有效。当用户在运行时调整窗口大小时,它不会更改布局。
杰伊

5
网格和垂直布局在设计和运行时都对我有用。
AndiDog

2
我希望添加一些细节:如果您想向QTabWidget页面添加自拉伸布局,则实际上无法右键单击页面的背景,就像选择QTabWidget而不是相关选项卡一样。您必须右键单击设计器窗口中显示的选项卡标签,然后选择“ 布局” -> “在网格中布局”
Emanuele Cipolla 2014年

15

根据文档,需要设置顶层布局。

顶层布局是必要的,以确保您的小部件在调整窗口大小时能够正确调整大小。要检查是否设置了顶层布局,请预览窗口小部件并尝试通过拖动尺寸夹点来调整窗口的大小。

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

Qt布局


2

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

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


6
在配备Retina显示屏(2880x1800)的MacBook Pro上,使用此技术会发生什么?
ta.speot。是2012年

1
只需将其设置为它可以接受的最大数量(Designer向我显示的数量是16777215),它就可以在任何显示器尺寸上工作。
andreb

0

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


我注意到,当用户调整整个窗口的大小时,垂直布局(以及其内容)将拉伸以适合它。我不在乎它在Qt Designer中的外观。
Elazar Leibovich

-7

将控件/小工具的horizo​​ntalPolicy和VerticalPolicy设置为“ Preferred”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.