DtkDeclarative  5.6.10
DTK Declarative module
SortFilterModel类 参考

提供一种自带过滤和排序的 DelegateModel. 更多...

类 SortFilterModel 继承关系图:

Public 成员函数

void update ()
 

属性

var lessThan
 lessThan 函数用于排序。
 
var filterAcceptsItem
 filterAcceptsItem 函数用于进行视图项的过滤。
 
alias visibleGroup
 visibleGroup 为当前可视的 DelegateModelGroup 。 更多...
 

详细描述

提供一种自带过滤和排序的 DelegateModel.

SortFilterModel 提供自带过滤和排序的 DelegateModel,SortFilterModel 中的特定函数控制了
其中列表中每个项的显示和隐藏,通常和控件中的搜索功能绑定。
一般的 SortFilterModel 用法如下:

Rectangle {
width: 200; height: 100
id: visualModel
model: ListModel {
ListElement { name: "Apple" }
ListElement { name: "Orange" }
}
delegate: Rectangle {
height: 25
width: 100
Text { text: "Name: " + name}
}
}
ListView {
anchors.fill: parent
model: visualModel
}
}
提供一种自带过滤和排序的 DelegateModel.
Definition: SortFilterModel.qml:6
上述示例不带任何排序和过滤,对上述代码修改可实现特定情况的过滤,例如下述代码过滤 type 1 类型的元素。
Rectangle {
width: 200; height: 100
id: visualModel
model: ListModel {
ListElement { type: 1; name: "Apple" }
ListElement { type: 2; name: "Orange" }
}
delegate: Rectangle {
height: 25
width: 100
Text { text: "Name: " + name}
}
filterAcceptsItem: function(item) {
return item.type === 1
}
}
ListView {
anchors.fill: parent
model: visualModel
}
}
var filterAcceptsItem
filterAcceptsItem 函数用于进行视图项的过滤。
Definition: SortFilterModel.qml:11

对于多个 type == 1 的元素时,可以通过 lessThan 函数对过滤出的元素进行排序,如下代码:

Rectangle {
width: 200; height: 100
id: visualModel
model: ListModel {
ListElement { type: 1; prior: 2; name: "Apple" }
ListElement { type: 2; prior: 1; name: "Coconut" }
ListElement { type: 2; prior: 1; name: "Orange" }
}
delegate: Rectangle {
height: 25
width: 100
Text { text: "Name: " + name}
}
filterAcceptsItem: function(item) {
return item.type === 1
}
lessThan: function(item1, item2) {
return item1.prior < item2.prior
}
}
ListView {
anchors.fill: parent
model: visualModel
}
}
var lessThan
lessThan 函数用于排序。
Definition: SortFilterModel.qml:9

属性说明

◆ visibleGroup

var SortFilterModel::visibleGroup
read

visibleGroup 为当前可视的 DelegateModelGroup 。

参见
DelegateModelGroup

该类的文档由以下文件生成: