我有一个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中,有一个示例。

09-06 19:10