Qt 从 QHBoxLayout 中删除拉伸

ula*_*ade 5 c++ qt

在添加了一段之后QBoxLayout::addStretch,我可以以某种方式将其删除吗?我想在我添加的每个小部件之后在布局的末尾继续添加一个拉伸,所以我必须删除旧的拉伸,添加新的小部件并在此之后添加一个新的拉伸。

Mik*_*iki 7

您可以从仅包含拉伸的布局开始,而不是在末尾删除和添加拉伸。

然后,不是添加新小部件,而是将其插入到位置layout->count()-1。拉伸将向右移动一个位置。

所以:

QHBoxLayout* layout = new QHBoxLayout();
layout->addStretch();
setLayout(layout);

...

layout->insertWidget(layout->count()-1, yourWidget);
Run Code Online (Sandbox Code Playgroud)