QML中如何过滤ListModel中的元素
时间: 2024-05-01 07:20:54 浏览: 262
qml中treeview用法
在QML中,可以使用`ListElement`元素来添加元素到`ListModel`中。要过滤`ListModel`中的元素,可以使用`filter()`函数。该函数需要一个函数作为参数,该函数将被应用于`ListModel`中的每个元素,如果该函数返回`true`,则该元素将被保留,否则将被过滤掉。
例如,假设有一个名为`myModel`的`ListModel`,并且该模型中的元素具有以下属性:`name`和`age`。如果我们想要过滤出age大于等于18的元素,可以使用以下代码:
```
myModel.filter(function(item) {
return item.age >= 18;
})
```
该代码将返回一个新的`ListModel`,其中只包含满足过滤条件的元素。
如果要在QML中显示过滤后的`ListModel`,可以将其分配给一个`ListView`或其他可视元素的`model`属性。例如:
```
ListView {
model: myModel.filter(function(item) {
return item.age >= 18;
})
delegate: Text {
text: name + " - " + age
}
}
```
该代码将在`ListView`中显示`age`大于等于18的元素的`name`和`age`属性。
阅读全文