gpt4 book ai didi

c++ - 从布局中删除所有 QSpacerItem

转载 作者:太空狗 更新时间:2023-10-29 20:13:06 27 4
gpt4 key购买 nike

我使用 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;
}
}

所以,如果代码没有说清楚的话,逻辑简而言之就是这样:

  • 查找布局的所有项目。

  • 检查是否是间隔项。

  • 如果是,请将其删除。

关于c++ - 从布局中删除所有 QSpacerItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23461614/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com