如何调整 QVBoxLayout 中布局之间的空间

use*_*622 4 python layout pyqt spacing qvboxlayout

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

例如:

layout = QVBoxLayout()
h1_layout = QHBoxLayout()
h2_layout = QHBoxLayout()
layout.addLayout(h1_layout)
layout.addLayout(h2_layout)
Run Code Online (Sandbox Code Playgroud)

我希望h1_layout和的内容h2_layout彼此靠近放置,而不是在垂直布局上间隔开。

ekh*_*oro 7

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

layout = QVBoxLayout()
h1_layout = QHBoxLayout()
h2_layout = QHBoxLayout()
layout.addLayout(h1_layout)
layout.addLayout(h2_layout)
# add expanding spacer
layout.addStretch()
Run Code Online (Sandbox Code Playgroud)

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

layout.setAlignment(QtCore.Qt.AlignTop)
Run Code Online (Sandbox Code Playgroud)

  • @ZhuokaiZhao 使用 `layout.setSpacing(10)` ([docs](https://doc.qt.io/qt-5/qboxlayout.html#setSpacing)),或添加固定宽度的 [spacer-item]( https://doc.qt.io/qt-5/qspaceritem.html)。 (3认同)