如何使Qt Widget随窗口大小而增长?

时间:2011-05-18 12:44:16

标签: qt4 autoresize qt-designer

我想要一个小的QFormLayout,以便填充其父窗口小部件。

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

这一切都运行得相当不错,但QFormLayout总是保持在我在Qt Designer中设置的大小。我希望QFormLayout填充其父窗口小部件并使用它进行扩展/缩小。

我该如何实现?

4 个答案:

答案 0 :(得分:113)

在Designer中,激活centralWidget并指定布局,例如水平或垂直布局。 然后你的QFormLayout会自动调整大小。

Image of Designer

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

另见

  

Controls insist on being too large, and won't resize, in QtDesigner

答案 1 :(得分:41)

我发现在我在其下面添加至少一个孩子之前,不可能将布局分配给centralwidget。然后我可以突出显示带有红色“禁用”标记的小图标,然后单击顶部的Designer工具栏中的布局。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

您需要将顶级QWidget对象的默认布局类型从“中断”布局类型更改为其他布局类型(“垂直”布局,“水平”布局,“网格”布局,“表单”布局)。 例如: enter image description here

对于这样的事情:

enter image description here