PyQt5-单行文本框验证器QIntValidator类的使用

2025-10-09 07:52:40

1、①导入模块,创建应用程序对象;

②自定义类继承自QWidget, 创建窗口并展示。

PyQt5-单行文本框验证器QIntValidator类的使用

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

PyQt5-单行文本框验证器QIntValidator类的使用

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

PyQt5-单行文本框验证器QIntValidator类的使用

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);

PyQt5-单行文本框验证器QIntValidator类的使用

1、例如:控制文本框中仅输入2000-2019之间的整数。

可以给函数添加逻辑判断,来控制返回值。

但由于QValidator是实时监听文本框的改变,所以并不能一次显示所有输入。

PyQt5-单行文本框验证器QIntValidator类的使用

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

PyQt5-单行文本框验证器QIntValidator类的使用

3、重写QValidator的fixup(str)方法。可以在切换焦点后,直接修改不合规则的字符串。

参数str是经过validate()方法验证后的字符串;,

PyQt5-单行文本框验证器QIntValidator类的使用

4、但这仍不能避免输入非整数字符时报错;

可以使用try语句直接避错。

PyQt5-单行文本框验证器QIntValidator类的使用

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