gpt4 book ai didi

c++ - 如何迭代 QListWidget 中的每个项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:20:07 25 4
gpt4 key购买 nike

我只能在互联网上找到任何示例如何循环并获取 QListWidget 中的每个项目

最佳答案

int count = listWidget->count();
for(int index = 0;
index < count;
index++)
{
QListWidgetItem * item = listWidget->item(index);
// A wild item has appeared
}

我认为 foreach 完全不同。

如果你想了解更多信息,请看这个
http://doc.qt.digia.com/4.2/containers.html#the-foreach-keyword
向下滚动到它谈论 foreach 关键字的地方。


特别感谢 Tomalak Geret'kal 添加了我的键盘无法生成的正确字符:)


由于对此有很多赞成票,我也会在这里解释 foreach 宏。

foreach 是 Qt 特定的 C++ 添加,使用预处理器实现。如果你想禁用它,只需将 CONFIG += no_keywords 添加到你的 XX.pro 文件中。

Qt 会复制正在迭代的列表,但不必担心性能问题。 Qt 容器使用隐式共享,其中不复制实际内容。将其视为使用相同实际变量的两个引用变量。这使得修改您正在迭代的列表成为可能,而不会弄乱循环。请注意,修改列表会强制 Qt 在第一次修改时复制列表的实际内容。

foreach可以用来循环遍历所有的Qt基本容器,QList QVector QMap QMultiMap等等。 QListWidget 不是其中之一,所以遗憾的是它不起作用。更糟糕的是,QListWidget 不提供所有项目的列表,只提供选定的项目。有一个方法叫做 items,看起来不错,但是被保护了。

要遍历选定的项目,我认为这可行

foreach(QListWidgetItem * item, listWidget->selectedItems())
{
// A wild item has appeared
}

关于c++ - 如何迭代 QListWidget 中的每个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5567271/

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