主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 |
QValidator类提供了对输入文本的验证。 详情请见……
#include <qvalidator.h>
继承了QObject。
被QIntValidator、QDoubleValidator和QRegExpValidator继承。
QValidator类提供了对输入文本的验证。
这个类本身是抽象类。两个子类QIntValidator和QDoubleValidator提供了基本的数字范围检查,并且QRegExpValidator提供了一个使用自定义正则表达式的普通检查。
如果内置的验证器还不够的话,你可以继承QValidator。这个类有两个虚函数:validate()和fixup()。
validate()必须被每个子类重新实现。它根据参数是否有效(子类中来定义这个有效)返回Invalid、Intermediate或Acceptable。
这三种状态需要一些解释。Invalid是指字符串明显地无效。Intermediate是不太明显的——当字符串在不完整的时候(还在被编辑),这个有效的概念是要小心对待的。QValidator把Intermediate定义为一个字符串的属性,既不是明显地无效也不是作为最终结果可以接受的。Acceptable意味着作为最终结果这个字符串是可以接受的。在一个Acceptable字符串被输入的过程中任何似是而非的中间状态都是Intermediate。
这里是一些实例:
fixup()为提供了可以修改一些用户错误的验证器。默认实现是什么也不做。例如QLineEdit,如果用户按下回车键并且内容并不有效,这种情况下fixup()可以做些事情了。这样就允许一些Invalid字符串也可以被变为Acceptable。
QValidator通常被QLineEdit、QSpinBox和QComboBox使用。
请参考杂项类。
这个枚举类型定义了一个被验证的字符串所存在的状态。现在有三个状态:
这个函数会根据这个验证器的规则试图改变input来使之有效。它不需要结果是有效的字符串——这个函数的调用者必须在调用之后重新测试,默认是什么也不做。
这个函数的重新实现要改变input,尽管它们可能不生成有效字符串。例如,一个ISBN验证器也许想删除除了数字和“-”之外的任何字符,尽管结果不是一个有效的ISBN,一个姓氏验证器也许想要删除字符串开始和结尾的空白符号,尽管结果字符串并不存在于被接受的姓氏列表中。
如果根据这个验证器的规则,input是有效的,这个纯虚函数返回Invalid,如果看起来再编辑一下就会使结果变为可以接受(例如用户向一个接受10到99的窗口部件中输入了“4”),那么返回Intermediate,如果输入是有效的,就返回Acceptable。
如果需要的话,这个函数可以改变input和pos(光标位置)。
在QIntValidator、QDoubleValidator和QRegExpValidator中被重新实现。
这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。
Copyright © 2002 Trolltech | Trademarks | 译者:Cavendish | Qt 3.0.5版
|