在使用QBoxLayout::addStretch添加了一个伸缩项后,我能否删除它?我想在每次添加小部件后都在布局末尾添加一个伸缩项,因此我必须先删除旧的伸缩项,然后添加新的小部件,最后再添加一个新的伸缩项。请注意保留HTML标记。
不要删除并添加伸缩项,您可以从仅包含伸缩项的布局开始。 然后,不是添加新小部件,而是在layout->count()-1位置插入它。 伸缩将向右移动一个位置。 所以:QHBoxLayout* layout = new QHBoxLayout(); layout->addStretch(); setLayout(layout); ... layout->insertWidget(layout->count()-1, yourWidget);
delete verticalLayout->takeAt(verticalLayout->count() - 1);
- Amartel