是否有应用正则表达式的方式(同时输入一些文本),以TextEdit
QML元素像QtWidgets?如何将正则表达式应用于TextEdit,就像在Qt Widgets中一样?
在QtWidgets你需要创建QRegExp
和QValidator
,然后设置模式来QRegExp
,创建一个模式的QValidator
最后调用setValidator()
上QLineEdit
。
有没有实现QML类似的方法吗?或者唯一的解决方法是利用一些JavaScript和/或C++代码?
是否有应用正则表达式的方式(同时输入一些文本),以TextEdit
QML元素像QtWidgets?如何将正则表达式应用于TextEdit,就像在Qt Widgets中一样?
在QtWidgets你需要创建QRegExp
和QValidator
,然后设置模式来QRegExp
,创建一个模式的QValidator
最后调用setValidator()
上QLineEdit
。
有没有实现QML类似的方法吗?或者唯一的解决方法是利用一些JavaScript和/或C++代码?
如果你想添加你应该切换从TextEdit
到TextInput
类型文本验证。后者有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]+/ }
}
}