我有一个QRect,我尝试使用RegExpFilter在qml中进行过滤
QRect(1220,50,500,300)
我想这样匹配他们:
QRect([0-2000],[0-500],*,*)
SortFilterProxyModel
{
onCountChanged: listView.recalculate()
id: proxyModel
sourceModel: m_sourceModel
filters: [
RegExpFilter {
enabled: true
roleName: "myQRectRole"
pattern: ????
}
]
}
我被卡住了,因为它是QRect,是否有可能?
(使用SortFilterProxyModel和RegExpFilter)
最佳答案
RegExpFilter仅用于过滤字符串,在您的情况下不是。解决方法是使用ExpressionFilter:
SortFilterProxyModel {
id: proxyModel
sourceModel: m_sourceModel
filters: [
ExpressionFilter{
// QRect([0-2000], [0-500], *, *)
expression: (model.myQRectRole.x >= 0 && model.myQRectRole.x <= 2000) && (model.myQRectRole.y >= 0 && model.myQRectRole.y <= 500)
}
]
}
在下面的link中,有一个示例。