Я добавил 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;
}
}
Итак, логика была бы в двух словах, если код не дает понять:
Посмотрите все элементы макета.
Проверьте, является ли это элементом распорки.
Если это так, удалите его.