我已经使用它的方法QSpacerItem在布局中添加了一个。addStretch()
layout->addStretch(1);
现在我想删除它,但我没有任何参考。
我怎样才能浏览所有QLayoutItem,只删除QSpacerItem?
我个人会这样写:
for (int i = 0; i < layout->count(); ++i) {
QLayoutItem *layoutItem = layout->itemAt(i);
if (layoutItem->spacerItem()) {
layout->removeItem(layoutItem);
// You could also use: layout->takeAt(i);
delete layoutItem;
--i;
}
}
因此,如果代码没有明确说明,逻辑将是这样的:
查找布局的所有项目。
检查它是否是间隔项目。
如果是,请将其删除。