Vertical Spacer在Form布局中不会超过sizeHint

时间:2013-01-17 11:46:45

标签: qt-designer

我正在尝试设计一个表单,当窗口大小增加时,某些元素会保留在表单布局的底部,而其他元素则保持在顶部。在顶部和底部元素之间使用垂直间隔器几乎可以工作,但垂直间隔器仅延伸到其SizeHint的高度值(参见下面的屏幕截图)。

简单地将SizeHint增加到某个较大的位置会产生不必要的副作用,即整个窗口的首选大小也会变得非常大,因此“调整大小(Ctrl + J)”命令会使窗口变得无法接受。

如果我使用垂直布局而不是表格布局,则担架的行为与我期望的一样,在使用“调整大小”时无限增加并尊重SizeHint,但当然我失去了表单布局的行为( TextLabels的对齐方式。)

如何在表格布局中使Vertical Spacer拉伸超过SizeHint?

Minimum size

Size increased

1 个答案:

答案 0 :(得分:1)

使用多个布局,而不仅仅是一个。

  1. 设置窗口的垂直布局。
  2. 添加水平布局,用QLabel和QLineEdit填充。添加垂直垫片。
  3. 添加另一个水平布局,用QLabel和QLineEdit填充它。
  4. 添加水平布局,使用Vertical Spacer和两个QPushButtons填充。
  5. 如果我理解正确,你应该得到你想要的东西:)

    另一种方法是使用 QGridLayout

    1. 将QLabel设置为0,0和1,0
    2. 将QPushButtons设置为2,1和2,2
    3. 将QLineEdits设置为0,1和1,1
    4. 拖动QLineEdits,使它们从第1列跨越到第2列
    5. 第0行和第1行之间的垂直间隔。