其他分享
首页 > 其他分享> > c – 从布局中删除所有QSpacerItem

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