如何在 QVBoxLayout 中的布局之间调整 space

How to adjust space between layouts in a QVBoxLayout

我了解了如何调整布局中小部件之间的 space: Space between widgets in QVBoxLayout。但是,我想知道如何在添加到布局的 布局 之间调整 space。

例如:

layout = QVBoxLayout()
h1_layout = QHBoxLayout()
h2_layout = QHBoxLayout()
layout.addLayout(h1_layout)
layout.addLayout(h2_layout)

我希望 h1_layouth2_layout 的内容彼此靠近放置,而不是 spaced 横跨垂直布局。

我假设您希望两个水平布局的内容在垂直布局的顶部对齐,而不是展开以填满整个 space 可用空间。如果是这样,您可以通过在垂直布局的底部添加扩展 spacer 来实现:

layout = QVBoxLayout()
h1_layout = QHBoxLayout()
h2_layout = QHBoxLayout()
layout.addLayout(h1_layout)
layout.addLayout(h2_layout)
# add expanding spacer
layout.addStretch()

另一种实现类似效果的方法是设置父布局的对齐方式:

layout.setAlignment(QtCore.Qt.AlignTop)