我的表单上有一个QHBoxLayout
,其中添加了3种布局。第二个有关于我的问题的项目。
我在主布局的第二个 Pane 中有一个QVBoxLayout
(QHBoxLayout
)。
此QVBoxLayout
中已添加了QScrollArea
和addWidget
。
该QScrollArea
是名为“scrollContents”的QWidget
的父项,而QGridLayout
又包含QGridLayout
。
我正在为此高度固定的100px
添加一个自定义创建的小部件。我们现在可以考虑这个QGridLayout
。
如果此QScrollArea
具有总高度小于表单本身的项目,则它将这些小部件垂直居中,并且它们之间的间距相同。
如果只有一个小部件,它将显示在中间。但是我希望它们从上到下列出。
例如:[###代表QWidget
的区域,其中存在一个QGridLayout
,其中和 ojit_code。
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。
关于c++ - Qt QGridLayout自动将项目居中(移动)到中间。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14033902/