我必须使用正则表达式限制在文本框中输入的数据,如下所示: 例如:
如果用户在输入1.2,2,3后离开文本框。我必须在3之后删除点并保存。
我开始限制只使用正则表达式输入点或逗号"([。,] {1})" 但是文本框接受一个点,而它允许输入3个逗号。
答案 0 :(得分:2)
对于正则表达式本身,请遵循WiktorStribiżew
的建议你知道QRegexValidator吗? 要验证在文本框中输入的数据,最好的方法是使用QRegexValidator
http://doc.qt.io/qt-4.8/qregexpvalidator.html#details
// regexp: optional '-' followed by between 1 and 3 digits
QRegExp rx("-?\\d{1,3}");
QValidator *validator = new QRegExpValidator(rx, this);
QLineEdit *edit = new QLineEdit(this);
edit->setValidator(validator);
使用此对象时,用户无法在字段中输入无效数据,因此当用户离开文本框时不必须处理某些内容< / p>