【发布时间】:2019-04-10 17:21:46
【问题描述】:
我有一个 QT QRegExpValidator(QML 中的 RegExpValidator),它将我的文本输入限制为仅限字母数字内容。
但是,当用户将字符串粘贴到我的TextField 时,有时这些字符串以换行符结尾,验证失败,因此字符串永远不会被粘贴。
我已经读到实现fixup 方法让您有机会清理字符串,以便它们与验证器正常工作。但是,这在粘贴时似乎不起作用 - 字符串仍然没有被粘贴。
如何让它按我想要的方式工作?
我的代码如下:
LoginValidator { id: alphaNumValidator; regExp: /(?:[0-9A-Za-z])+$/ }
而LoginValidator的实现如下:
class LoginValidator : public QRegExpValidator
{
Q_OBJECT
public:
virtual void fixup(QString &input) const override
{
input = input.simplified().remove(' ');
}
};
【问题讨论】:
-
@eyllanescis 这不正是我正在使用的吗?我看不出你的正则表达式和我的有什么区别???
-
@eyllanesc 嗯,似乎不是拼写错误,它工作得很好......它只是一个原始的正则表达式,
regExp接受
标签: qt qml qt5 qvalidator