我的表单上有一个QHBoxLayout,添加了3个布局.第二个有关于我的问题的项目.
我在主布局的第二个窗格(QHBoxLayout)上有一个QVBoxLayout.
这个QVBoxLayout使用addWidget添加了一个QScrollArea.
此QScrollArea是名为“scrollContents”的QWidget的父级,后者又包含QGridLayout.
我正在为这个具有固定高度的QGridLayout添加一个自定义创建的小部件.我们现在可以考虑这个100px.
如果此QGridLayout具有项目,其总高度小于表单本身,则它们将这些小部件垂直居中,并在它们之间具有相同的空间量.
如果只有一个小部件,它就会出现在中间.但我希望它们从上到下列出.
例:[###表示QScrollArea的区域,其中有QGridLayout的QWidget.
OK -> DESIRED -> NOT DESIRED AND WHAT HAPPENS ########## ########## ########## # |item| # # |item| # # # # |item| # # # # # # |item| # # # # # # |item| # # # # |item| # # |item| # # # # # # |item| # # # # # # |item| # # # # # ########## ########## ########## |item| |item| |item|
基本上:如果有9个“行”的空间,当添加单个项目时,它会出现在第5个位置的中间位置.如果有9个或更多,它们就会出现.如果有8个或更少,则它们之间的空间被扩展以使它们全部居中.
我怎么解决这个问题?
谢谢.
解决方法
还有一种方法与trollixx的答案不同:在QGridLayout的“底部”添加一个虚拟小部件,其垂直大小策略设置为扩展.见
this answer,which also contains an example with a toolbar.