问题描述
我有一个不同 QGroupBox 小部件的简单 QGridLayout。这些 QGroupBox 小部件可以具有可变宽度(取决于每个小部件中的内容量。
当groupboxes堆叠成网格时,下一列从最长groupbox的右边开始,但如果同一列中有较短的groupboxes,就会有空白。
是否有一种方法可以基本上强制列中的每个小部件都成为最大宽度小部件的宽度?
基本上我想要一列从这里开始:
<===== Widget 1 Width =======>
<== Widget 2 Width ==> (empty)
<=Widget 1 Width=> (empty )
为此:
<===== Widget 1 Width =======>
<===== Widget 2 Width =======>
<===== Widget 3 Width =======>
不要在下一列之前留空,而是强制分组框(或网格中的任何小部件)填充到最后。现在该列以任何最大宽度结束,我仍然希望发生这种情况,但我希望较小的小部件也填充到该大小
谢谢!
解决方法
您是否尝试将布局中小部件的大小策略更改为展开?
根据文档:
QSizePolicy::Expanding : sizeHint() 是一个合理的大小,但是小部件可以缩小并且仍然有用。小部件可以利用额外的空间,因此它应该获得尽可能多的空间(例如水平滑块的水平方向)。