我正在开发一个具有复杂的小部件和布局层次结构的应用程序,但简而言之,它有一个中央小部件,其中一个处方集作为上部小部件,一个QScrollArea
作为一个小部件(通过一个{ {1}})。
QVBoxLayout
表示QScrollArea
的列表(确实是网格布局),它可以包含大量按钮(或不包含)。
我希望我的应用符合以下限制条件:
QPushButton
也没有内容边距。)我部分地解决了我在表单上使用SpaceItem
的问题,它会垂直缩小它,但也会水平缩小,导致列表和表单两者都有不同的宽度,而不是看起来很好。
我怎样才能实现这一目标?我的意思是,如何指定像setSizeConstraint(QLayout::SetFixedSize)
?
答案 0 :(得分:0)
在布局中添加一个spacer作为最后一项:
gridLayout->addItem(new QSpacerItem(10, 10, QSizePolicy::Expanding, QSizePolicy::Expanding), lastrow, 0);
答案 1 :(得分:0)
我认为这就是你想要的:
如果你知道你将拥有多少列(并且它没有改变),最后一列中的insertStretch()(虽然它可能会给你与使用间隔符相同的效果)。
int columnCount = gridLayout()->columnCount();
gridLayout->insertStretch( columnCount(), 1 ); // Default stretch for other
请注意,除非您明确更改其宽度,否则这会将按钮的大小调整为Qt认为它们的大小。