Qect上的Qt正则表达式

时间:2019-03-16 19:38:02

标签: c++ regex qt qml

我有一个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)

1 个答案:

答案 0 :(得分:2)

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