qt中的lineEdit文本输入框的输入类型限制(三种验证类)
来源:互联网 发布:战略要素评价矩阵法 编辑:程序博客网 时间:2024/06/05 00:44
在之前的开发过程中因为经验不足,导致了程序健壮性不好而吃了不少的
用户体验来说极为不好。因此这次限制lineEdit输入源是有极为必要的。
经过初步的调研,发现目前三种限制分别是
1.输入int类型 限制
QIntValidator *validator = new QIntValidator(0, 100, this);ui->lineEdit->setValidator(validator);
以上发现可以成功限制输入0 - 100的整数
2.输入浮点数类型 限制
QDoubleValidator *validator = new QDoubleValidator(0, 100, 2, this);ui->lineEdit->setValidator(validator);
因为浮点数的储存方式不同所以以上代码只能实现小数位的限制,却不能限制整数位。
经过网络调研发现如果要实现浮点数的输入区间限制则要禁用科学计数法或者使用第三种方法。
虽然禁用科学计数法,但是经过则是也只能限制到当前位数,效果并不明显。例如
QDoubleValidator*validator= new QDoubleValidator(-180,180,2,this);validator->setNotation(QDoubleValidator::StandardNotation);ui->lineEdit_2->setValidator(validator);
限制范围是-999.00到999.00 ,-180识别到百位的最大极限-999,正数同理。
目前并没有找到具体的解决办法。
3.正则表达式 限制
QRegExp wx("^-?(90|[1-8]?\\d(\\.\\d{1,4})?)$"); QRegExpValidator *latitude = new QRegExpValidator(wx, this); ui->lineEdit_4->setValidator(latitude);
以上代表了-90 到 90 限制了小数点后4位的输入区间限制。
正则表达式非常灵活,从字符到数字都可以作出限制判断。
正则表达式唯一的不足一点就是对新人可能不友好。
另外因为发开需求要使用-180到180浮点数的正则表达式,在网上查了半天后妥协放弃了。
QRegExp jx("(^-?180$)|(^-?1[0-7]\\d$)|(^-?[1-9]\\d$)|(^-?[1-9]$)|^0$");
以上是-180到180的整数区间。
阅读全文
0 0
- qt中的lineEdit文本输入框的输入类型限制(三种验证类)
- qt中的lineEdit文本输入框的输入类型限制(三种验证类)
- qt中的lineEdit文本输入框的输入类型限制(三种验证类)
- qt中的lineEdit文本输入框的输入类型限制(三种验证类)
- 初学Qt:限制lineEdit文本框输入内容的方法
- 关于EditText文本输入框输入类型的限制
- Qt的LineEdit 输入内容控制
- Qt中lineedit的输入与输出
- 几种文本限制输入和常用的正则验证
- 限制文本输入框textarea最大输入字符的js
- 限制文本输入框textarea最大输入字符的js
- 文本输入框,限制输入字数
- Qt 编辑框的输入限制
- 文本输入框限制字数
- 限制HTML的文本输入框只能输入数字的4种方法
- EditText的输入限制类型
- 文本限制输入
- 文本限制输入
- jquery下载地址:https://code.jquery.com/jquery/ 影响范围: 版本低于1.7的jQuery过滤用户输入数据所使用的正则表达式存在缺陷,可能导致LOCA
- SQLLDR 简介
- newInstance()和new()的区别
- 【队内练习赛】OMG爱吃鸡 【dp递推】【思维题】【好题】
- hihocoder #1014 : Trie树
- qt中的lineEdit文本输入框的输入类型限制(三种验证类)
- 说说JSON和JSONP
- c# splitContainer控件
- 常用正则表达式大全!(例如:匹配中文、匹配html)
- 【动态规划(三)】经典背包问题
- 定时器quartz结合spring使用(方法二MethodInvokingJobDetailFactoryBean)
- JQuery添加删除元素
- 2017X-NUCA WEB专题赛前指导 writeup
- STM32 串口发送数据(发送一个字节,以及数组)