【发布时间】:2014-05-04 21:10:36
【问题描述】:
我已经使用 addStretch() 方法将 QSpacerItem 添加到布局中。
layout->addStretch(1);
现在我想删除它,但我没有任何参考。
如何浏览所有QLayoutItem,只删除QSpacerItem?
【问题讨论】:
我已经使用 addStretch() 方法将 QSpacerItem 添加到布局中。
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;
}
}
所以,如果代码没有说清楚,逻辑就是这样:
查找布局的所有项目。
检查是否为间隔项。
如果是,请将其删除。
【讨论】: