2015-06-29 20 views
0

是否有应用正则表达式的方式(同时输入一些文本),以TextEdit QML元素像QtWidgets?如何将正则表达式应用于TextEdit,就像在Qt Widgets中一样?

在QtWidgets你需要创建QRegExpQValidator,然后设置模式来QRegExp,创建一个模式的QValidator最后调用setValidator()QLineEdit

有没有实现QML类似的方法吗?或者唯一的解决方法是利用一些JavaScript和/或C++代码?

回答

3

如果你想添加你应该切换从TextEditTextInput类型文本验证。后者有validator财产。它从文档中读取:

允许您在TextInput上设置验证器。当一个验证器被设置时,TextInput将只接受使text属性处于可接受或中间状态的输入。只有当按下输入时文本处于可接受状态时才会发送接受的信号。

当前支持的验证器是IntValidator,DoubleValidator和RegExpValidator

RegExpValidator 提供regExp属性保持的实际的正则表达式可以应用到输入文本。

这里是一个仅接受数字和a(一个或多个数字/ a - 大写和小写)最小例如:

import QtQuick 2.4 
import QtQuick.Window 2.2 
import QtQuick.Controls 1.3 

ApplicationWindow { 
    id: window 
    width: 200 
    height: 200 
    visible: true 

    TextInput { 
     focus: true 
     anchors.centerIn: parent 
     validator: RegExpValidator { regExp: /[0-9aA]+/ } 
    } 
}