gpt4 book ai didi

qt - 如何在 qml 的 ListModel 中找到特定的 ListElement?

转载 作者:行者123 更新时间:2023-12-04 13:59:54 28 4
gpt4 key购买 nike

Qt QML 有一个 ListModel可用于表示列表数据。它提供了许多向列表添加元素的方法,但我能找到的唯一检索元素的方法是 get()期望索引的方法。

我想检查我的 ListModel 是否包含特定元素?有没有办法使用键和值来接收 ListElement 对象?

例如考虑这个列表:

ListModel {
id: fruitModel

ListElement {
name: "Apple"
cost: 2.45
}
ListElement {
name: "Orange"
cost: 3.25
}
ListElement {
name: "Banana"
cost: 1.95
}
}

是否有诸如fruitModel.get({name: "Banana"}) 之类的方法可以找到名称为“Banana”的元素并返回它们?

最佳答案

您将不得不迭代并检查列表元素。

如果您要执行不同的搜索,最好编写一个函数,您可以在其中将搜索条件作为仿函数传递:

function find(model, criteria) {
for(var i = 0; i < model.count; ++i) if (criteria(model.get(i))) return model.get(i)
return null
}

您可以像这样使用它来查找名称为 "Banana" 的项目。 :
find(fruitModel, function(item) { return item.name === "Banana" })

如果可能有多次点击,您应该返回一组项目而不是单个项目。

关于qt - 如何在 qml 的 ListModel 中找到特定的 ListElement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41991438/

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