一、介绍
QIntValidator是Qt框架中用于验证整数输入的验证器类。它可以限制用户输入的整数范围,确保输入的整数在指定的范围内。通过QIntValidator,可以轻松地实现整数输入的有效性和范围限制。
二、 常用方法
- QIntValidator(QObject *parent = Q_NULLPTR)
构造一个整数验证器。
- QIntValidator(int minimum, int maximum, QObject *parent = Q_NULLPTR)
构造一个整数验证器,并指定下限和上限。
- bottom() const
返回当前验证器的最小值。
- setBottom(int)
设置整数的最小值。
- setRange(int bottom, int top)
设置验证器的整数范围。
- setTop(int)
设置整数的最大值。
- top() const
返回当前验证器的最大值。
三、验证机制
QIntValidator根据其设置的整数范围,对输入进行验证,并返回以下状态:
- QValidator::Acceptable:输入有效。
- QValidator::Intermediate:输入部分有效,尚不完整
- QValidator::Invalid:输入无效。
四、DEMO
// 创建一个QLineEdit对象作为输入框
QLineEdit *lineEdit = new QLineEdit;
// 创建一个QIntValidator对象,并设置输入范围为10到100
QIntValidator *validator = new QIntValidator(10, 100, lineEdit);
// 将验证器设置到输入框上
lineEdit->setValidator(validator);
// 显示输入框
lineEdit->show();
QString str;
int pos = 0;
QIntValidator v(100, 900, this);
str = "1";
v.validate(str, pos); // returns Intermediate
str = "012";
v.validate(str, pos); // returns Intermediate
str = "123";
v.validate(str, pos); // returns Acceptable
str = "678";
v.validate(str, pos); // returns Acceptable
str = "999";
v.validate(str, pos); // returns Intermediate
str = "1234";
v.validate(str, pos); // returns Invalid
str = "-123";
v.validate(str, pos); // returns Invalid
str = "abc";
v.validate(str, pos); // returns Invalid
str = "12cm";
v.validate(str, pos); // returns Invalid
qq群交流:698593923
觉得有帮助的话,打赏一下呗。。