在 Qt 中使用 `QVBoxLayout` 时,`addStretch()` 方法通常用于在布局中添加一个可伸缩的空间,这有助于推动没有固定空间要求的小部件向布局的顶部或底部移动。、
总共有两种办法,一种不断地删除布局,重新添加`addStretch()` ,另一种使用两个布局,一个主布局和一个次级布局。次级布局用于添加大部分小部件,而主布局则用于放置这个次级布局和 stretch。这样,你可以自由地向次级布局添加小部件,而无需每次都调整 stretch 的位置。此处讲第二种:
void setupLayout() {
QVBoxLayout* mainLayout = new QVBoxLayout(this);
QVBoxLayout* secondaryLayout = new QVBoxLayout();
mainLayout->addLayout(secondaryLayout);
mainLayout->addStretch(1);
// 使用 secondaryLayout 来添加你的小部件
}
这种方法的优点是添加小部件时不需要调整 stretch,从而提高了效率。缺点是增加了布局的复杂性,可能会使得布局管理稍微复杂一些。