手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

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

时间:2024-10-14 10:49:36

在单行文本框中,利用验证器QIntValidator来限定文本框的输入内容。

1.创建窗口及子控件

1、①导入模块,创建应用程序对象;②自定义类继承自QWidget, 创建窗口并展示。

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

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

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

2.验证器类QValidator

1、单行文本框使用函数:setValidator猾诮沓靥(QValidator)来设置验证器。文本框中输入内容时;首先会将内容传递给验证器 QValidator 进行验证。----①参数QV锾攒揉敫alidator是个验证器类对象。----②QValidator类是个抽象类,所以是不能直接实例化;----③在给setValidator函数传入参数前必须要先定义一个子类来继承QValidator,才能实例化对象。

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

3.子类化QValidator

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=2return (QValidator.Acceptable , str , int);

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

3.应用举例-限定整数范围

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

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

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

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

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

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

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

PyQt5-单行文本框验证器QIntValidator类的使用
© 手抄报圈