如何使Qt小部件随窗口大小增长?


89

我想要一个QFormLayout可以填充其父小部件的小部件。

我使用Qt Designer中的模板创建了一个新的.ui文件QWidget。我将一个QFormLayout“窗口”放入其中,然后在其中放入一些控件QFormLayout

所有这些都可以正常工作,但QFormLayout始终保持在我在Qt Designer中设置的大小。我想QFormLayout填充其父窗口小部件并对其进行缩放。

我该怎么做?

Answers:


130

在Designer中,激活centralWidget并分配一个布局,例如水平或垂直布局。然后,您的QFormLayout将自动调整大小。

设计师形象

始终确保所有小部件都具有布局!否则,自动调整大小将破坏该小部件!

也可以看看

控件坚持在QtDesigner中过大,并且不会调整大小


13
QtDesigner有时可能会有些混乱。
巴斯蒂贝

30
哦,谢谢你!:-)我一直盯着QtDesigner(好吧,QtCreator,还是那里的东西)了半个小时,不知道为什么我的中央小部件没有调整到最大尺寸-直到我发现那个小小的图标在您的答案中圈了一个圈,上面有一个红色的“禁用”标记。只需在创建者工具栏中单击“垂直布局”按钮,即可解决此问题。我第一次注意到工具栏BTW,容易忽略...
ssc 2012年

8
要对Jens答案发表评论:在Mac上,单击顶层窗口小部件(不一定命名为“ centralWidget”),然后在菜单栏中单击“窗体”,然后选择一种布局。
hnasarat 2012年

2
如果仍然有疑问,可以在Windows的QT5.8 / QT Creator 4.2.1中通过单击顶层“ centralWidget”(上面有一个红色标记)然后转到“工具”>“表单编辑器”>“布局”垂直(或水平)。
LeoR

41

我发现不可能在Centralwidget上分配一个布局,除非我在其下方添加了至少一个孩子。然后,我可以突出显示带有红色“禁用”标记的小图标,然后单击顶部设计器工具栏中的布局。


4
这太疯狂了。将布局分配给中央小部件应该是Qt Creator中最简单的操作。取而代之的是,需要将此高度不直观的解决方案与Jens同样不直观的解决方案按照确切的顺序)进行组合。尽管Qt Creator提供的自动化功能仍在很大程度上击败了重复的样板,但骇人听闻的用户体验(UX)却给我带来了新的视觉冲击。
Cecil Curry

@Cecil Curry即使在该解决方案之后也花了我20分钟的时间才意识到我应该做什么...因为仅在没有上下文菜单选项来添加布局的情况下,centralWidget才出现...在工具栏中只有一个微妙的按钮,看起来就像是一个不活动的按钮
斯威夫特-星期五派

3
撰写此评论是因为即使在这里找到解决方案之后,我也很难找到该选项。您必须选择centralWidget,然后右键单击应用程序的可用空间,在打开的上下文菜单中转到“布局”,然后选择所需的布局。至少对我来说这有效(使用QT Designer 5.11.1的QT5)。
kushy

11

接受的答案(其图像)是错误的,至少在QT5中是这样。相反,您应该为根对象/小部件分配一个布局(指向上述图像,它应该是MainWindow而不是centralWidget)。另请注意,您必须在其下至少QObject创建一个才能使此工作。这样做,您的用户界面将对窗口调整大小做出响应。


0

您需要将顶级QWidget对象的默认布局类型从“中断”布局类型更改为其他布局类型(“垂直”布局,“水平”布局,“网格”布局,“表单”布局)。例如: 在此处输入图片说明

对于这样的事情:

在此处输入图片说明

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.