【问题标题】:Auto-expanding layout with Qt-Designer使用 Qt-Designer 自动扩展布局
【发布时间】:2011-03-30 09:29:37
【问题描述】:

我正在使用 Qt 设计器。

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

QVBoxLayout 的布局保持不变。

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

【问题讨论】:

标签: qt layout qt-designer


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    将控件/小部件的 Horizo​​ntalPolicy 和 VerticalPolicy 设置为 "Preferred"

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

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

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

      【讨论】:

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

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

      【讨论】:

      • 我提到当用户调整整个窗口的大小时,垂直布局(以及它的内容)将拉伸以适应它。我不在乎它在 Qt 设计器中的外观。
      猜你喜欢
      • 1970-01-01
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 2020-12-20
      • 2021-10-12
      • 2012-06-09
      相关资源
      最近更新 更多