【发布时间】:2021-08-31 09:02:15
【问题描述】:
我的表单的一部分包含 QGroupBox (Status Box) 和 4 个子 QGroupBoxes 以网格布局 (2x2) 排列。底部的两个QGroupBoxes(Widget 1 Box 和Widget 2 Box)包含固定大小的小部件(设置minimumSize 和maximumSize),因此它们在两个方向上都无法调整大小。由于严格的尺寸限制,QGroupBoxes(Summary Box 和 Helper Box)的顶行只能在垂直方向上调整大小。
麻烦的部分来了。左上角QGroupBox (Summary Box) 具有 5x3 网格布局,而右上角 (Helper Box) 具有 6 行的垂直布局。如果我有如图 1 所示的天真的小部件放置,Qt 正在扩大顶行中两个标签的垂直尺寸,以使两个 QGroupBoxes 的高度相等(参见图 1 上的红色箭头)。
这绝对是我不想要的,所以我在Summary Box 的底部添加了垂直间隔,乍一看它有效(图 2)。但仅从第一眼看...你看到的是我整个表格的最小高度和垫片的底部和Helper Box中的最后一个QCheckBox似乎是对齐的。
如果我垂直扩展我的表格,这个间隔会增长一点,这会导致顶部QGroupBoxes 的高度增加。结果QCheckBoxes 之间的间距也增加了,我们还可以看到右上角的框的顶部和底部间距不相等(参见图 3 中的红色箭头)。
我尝试使用sizeType 作为我的垂直垫片。如果我将其设置为Minimum 或MinimumExpanding,则间隔不会在调整大小时增长(也不会缩小),但它似乎会扩展到图 3 上的大小(破坏QCheckBox 之间的间距也是)。如果我将其设置为 Maximum、Preferred 或 Expanding,那么我观察到的行为与上述图 3 相同。
在不影响元素间距的情况下,在一行网格中实现两个QGroupBoxes 对齐的正确方法是什么(例如,在这种情况下,使垂直间隔器仅适合单行网格布局并且从不扩展/收缩)?
【问题讨论】: