ChatGPT解决这个技术问题 Extra ChatGPT

使用 Qt-Designer 自动扩展布局

我正在使用 Qt 设计器。

我想创建一个 QVBoxLayout,它会自动展开以填满整个窗口。

QVBoxLayout 的布局保持不变。

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

如果您只想在 Qt Designer 中使用布局,请参考以下提示:stackoverflow.com/questions/1508939/qt-layout-on-qmainwindow

G
Greg S

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


谢谢,我也一直在寻找解决这个问题的方法。
实际上,您根本不需要创建 Grid 布局。与其自己创建 QVBoxLayout,不如取消选择所有项目并单击小部件的背景。然后选择布局 -> 垂直布局。
@Michal Kottman:这只在设计时有效。当用户在运行时调整窗口大小时,它不会改变布局。
网格和垂直布局在设计和运行时都适用于我。
我想补充一点:如果你想为 QTabWidget 页面添加一个自拉伸布局,你实际上不能右键单击页面的背景,因为你会选择 QTabWidget 而不是相关的选项卡。您必须右键单击设计器窗口中显示的选项卡标签,然后选择布局 -> 在网格中布局
M
Mahmoud Hanafy

根据documentation,需要有一个顶级布局集。

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

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

https://i.stack.imgur.com/6VO9C.png


T
Tero Nivala

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

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


这种技术在配备 Retina 显示屏 (2880x1800) 的 MacBook Pro 上会发生什么?
只需将其设置为它将接受的最大数字(设计师向我显示的是 16777215),它应该适用于任何显示器尺寸。
P
Patrice Bernassola

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


我提到当用户调整整个窗口的大小时,垂直布局(以及它的内容)将拉伸以适应它。我不在乎它在 Qt Designer 中的外观。
S
Sunny

将控件/小部件的水平策略和垂直策略设置为“首选”。