PyQt5-单行文本框验证器QIntValidator类的使用
1、①导入模块,创建应用程序对象;
②自定义类继承自QWidget, 创建窗口并展示。

2、给顶层窗口添加子控件,并初始化位置。

1、自定义一个类,继承自QValidator类。并实例一个对象作为setValidator的参数。

2、重写QValidator类的方法。validate(self, str, int)
①当执行setValidator(QValidator)后,QValidator实例对象会实时监听文本框,并把每输入文本框的字母和字母的位置,作为参数传递给validate方法中的str,和int。
②参数str,是单行文本框输入的字符串,
③参数int,是光标在字符串中的位置。
它返回一个有三个元素的元组,有三种情况;
Acceptable = 2 ;验证通过
Intermediate = 1;暂不做验证;
Invalid = 0 ;验证不通过。
例如:第一种情况,;QValidator.Acceptable=2
return (QValidator.Acceptable , str , int);

1、例如:控制文本框中仅输入2000-2019之间的整数。
可以给函数添加逻辑判断,来控制返回值。
但由于QValidator是实时监听文本框的改变,所以并不能一次显示所有输入。

2、可加入第二种返回情况的逻辑判断。即暂不做验证。

3、重写QValidator的fixup(str)方法。可以在切换焦点后,直接修改不合规则的字符串。
参数str是经过validate()方法验证后的字符串;,

4、但这仍不能避免输入非整数字符时报错;
可以使用try语句直接避错。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:165
阅读量:137
阅读量:139
阅读量:184
阅读量:171