一.前言
楼主在实际的开发中,需要设置QLineEdit只能输入数字,还要设置可输入范围的大小,正好Qt提供QIntValidator这个类,心想Qt果然很方便,但是使用过程中也发现了问题,设置了输入范围,但是居然无效,还是可以输入范围之外的数字,其实经过验证,准确的说应该是:不是设置的范围都无效,是设置的范围对0-9无效
二.网上提供的设置方式也不能解决这个问题
方式1:
QIntValidator *v = new QIntValidator;
v->setRange(10,20);
ui->lineEdit->setValidator(v);
方式2:
ui->lineEdit->setValidator(new QIntValidator(10,20,this));
实际操作中发现只要输入的范围不涉及0-9就是正常的,至于原因,楼主还没找到
三.关于该问题的解决方式,目前有1种
1.采用正则表达式,具体可以参考:Qt笔记(七十四)之QLineEdit指定输入类型