[QtGui module]
该QRegExpValidator类是用来检查与正则表达式的字符串。More…
继承QValidator。
Methods
__init__ (self, QObject parent = None)__init__ (self, QRegExp rx, QObject parent = None)QRegExp regExp (self)setRegExp (self, QRegExp rx)(QValidator.State, QString input, int pos) validate (self, QString input, int pos)(QValidator.State, int pos) validate (self, QString input, int pos)
Detailed Description
该QRegExpValidator类是用来检查与正则表达式的字符串。
QRegExpValidator使用正则表达式(正则表达式)来确定一个输入字符串是否是Acceptable,Intermediate或Invalid。当QRegExpValidator构造正则表达式可以被提供,或者在稍后的时间。
当QRegExpValidator判断一个字符串是否是Acceptable还是不行,正则表达式被视为其与字符串断言的启动开始(^),并用绳子断言年底结束($) ;匹配是对整个输入字符串,或者从给定的位置,如果开始位置大于零给出。
如果一个字符串的前缀Acceptable串,它被认为是Intermediate。例如, “ ”和“A”是Intermediate为正则表达式[A-Z][0-9](而“_“将是Invalid) 。
对于简要介绍了Qt的正则表达式引擎,请参阅QRegExp。
使用示例:
// regexp: optional '-' followed by between 1 and 3 digits[QRegExp](docs_qregexp.html) rx("-?\\d{1,3}");[QValidator](docs_qvalidator.html) *validator = new QRegExpValidator(rx, this);[QLineEdit](docs_qlineedit.html) *edit = new [QLineEdit](docs_qlineedit.html)(this);edit->setValidator(validator);
下面,我们提出校验器的一些例子。在实践中,它们通常会被一个小部件如在上面的例子有关。
// integers 1 to 9999[QRegExp](docs_qregexp.html) rx("[1-9]\\d{0,3}");// the validator treats the regexp as "^[1-9]\\d{0,3}$"QRegExpValidator v(rx, 0);[QString](docs_qstring.html) s;int pos = 0;s = "0"; v.validate(s, pos); // returns Invalids = "12345"; v.validate(s, pos); // returns Invalids = "1"; v.validate(s, pos); // returns Acceptablerx.setPattern("\\S+"); // one or more non-whitespace charactersv.setRegExp(rx);s = "myfile.txt"; v.validate(s, pos); // Returns Acceptables = "my file.txt"; v.validate(s, pos); // Returns Invalid// A, B or C followed by exactly five digits followed by W, X, Y or Zrx.setPattern("[A-C]\\d{5}[W-Z]");v.setRegExp(rx);s = "a12345Z"; v.validate(s, pos); // Returns Invalids = "A12345Z"; v.validate(s, pos); // Returns Acceptables = "B12"; v.validate(s, pos); // Returns Intermediate// match most 'readme' filesrx.setPattern("read\\S?me(\.(txt|asc|1st))?");rx.setCaseSensitive(false);v.setRegExp(rx);s = "readme"; v.validate(s, pos); // Returns Acceptables = "README.1ST"; v.validate(s, pos); // Returns Acceptables = "read me.txt"; v.validate(s, pos); // Returns Invalids = "readm"; v.validate(s, pos); // Returns Intermediate
Method Documentation
QRegExpValidator.__init__ (self, QObject parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个验证用parent对象接受任何字符串(包括空单)为有效。
QRegExpValidator.__init__ (self, QRegExp rx, QObject parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个验证用parent对象接受匹配正则表达式的字符串rx。
本场比赛是针对整个字符串,例如如果设置了RegExp是[A-Fa-f0-9]+这将被视为[1]+$。
QRegExp QRegExpValidator.regExp (self)
[
QRegExpValidator.setRegExp (self, QRegExp rx)
(QValidator.State, QString input, int pos) QRegExpValidator.validate (self, QString input, int pos)
](docs_qregexp.html)
Returns Acceptable如果input匹配的正则表达式为这个校验器,Intermediate如果它匹配的部分(即可能是一个有效的匹配,如果其他有效字符添加) ,及Invalid如果input不匹配。
该pos参数被设置为的长度input参数。
例如,如果正则表达式是\w\d\d(单词字符,数字,数字),那么“ A57 ”是Acceptable, “ E5 ”是Intermediate和“ 9 ”的Invalid。
See also QRegExp.exactMatch( ) 。
(QValidator.State, int pos) QRegExpValidator.validate (self, QString input, int pos)
- A-Fa-f0-9 ↩︎
