c – 从布局中删除所有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;
}
}
因此,如果代码没有说清楚,那么逻辑就是这样:
>查找布局的所有项目.
>检查它是否是间隔项.
>如果是,请将其删除.
标签:qtgui,c,qt,qlayout 来源: https://codeday.me/bug/20190823/1695618.html