qt中LineEdit空间的限制输入(数字)。

qt中LineEdit空间的限制输入。

案例:

1. 限制输入 -180.0 - 180.0

QRegEXp rx("-?(180|1[0-7]\\d(\\.\\d{1,4})|[1-9]\\d(\\.\\d{1,4})|0(\\.\\d{1,4})|[1-9](\\.\\d{1,4}))$");

QRegExpValidator *pReg = new QRegExpValidator(rx,this);

ui->LineEdit->setValidator(pReg);

解析:

1.  规范来讲应该需要 ^ 和 $分别作为开头和结尾,例如 :^-?(90|[1-8]\d)&, ^([0-9]\\d+)$。

但是我写的时候并没有加 ^ ,所以 ^ 加不加会不会有影响,暂时本人还没接触到问题。但是 结尾的 $最好还是加,这个可能会有影响。

2. "-?" 表示一个或0个负号,这里面的问号表示其前面的字符重复0次或1次;

这个可以像我的案例一样放在最外层作为整体的一个正负,也可以分布在每一部分之前,看个人需求。

3. 看第二部分的 1[0-7]\\d ,“\d”是一个转义字符,表示随机匹配一位数字,简单来说就是 0-9 ,在使用时要和前方,也就是[0-7]这一部分中间加上 “\”,我也不知道为什么,可能是规定吧。这样整体就限制为为,第一个数是 1,第二个数是 0-7,第三个数就随机( 0-9 ),也就是我们需要的范围内的±(100-179)之间的数。

4.我在每个数字后边都加了 (\\.\\d{1,4})  ,这部分表示小数,“\.”表示数点,“\d{1,4}”就可以理解为最多能输入到小数点后四位,同理,在使用时要在前方加上 “\" 。

5.“ \d+”,表示前边的"\d"(可以理解为0-9)重复一次或者多次,一般用于 无穷,比如:0-无穷,可以这么写 ("([1-9]\\d+(\\.\\d{1,4})|0(\\.\\d{14})|[1-9](\\.\\d{1,4}))$" )。在写的时候注意要包括所有,比如0的小数点,个位数的小数点等。我在使用时将  0的限制作为第一个的时候好像不能用,不清楚是不是我个人编译环境的问题,有碰到这种问题的可以评论下,这种情况的资料比较少。

总结:这部分只说名了数字部分的,大概看完后就能学会数字方面的限制了,至于字母之类的请看借用资料的第一个链接,个人没尝试过,等有时间会再发文补充。

以上为个人见解,刚刚入门Qt,大佬们有问题或者建议可以在评论区提出,谢谢各位。

资料借用:

QLineEdit 设置只能输入字母、数字,可以设置输入长度_qlineedit设置只能输入数字-CSDN博客

限制QLineEdit的数值输入范围_qlineedit限制输入数字-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值