技术标签: Qt
使用正则表达式QRegExp,在Qt帮助文档中有详细使用说明。
1.限制普通输入
拿ip设置输入框为例:
在输入框所在界面构造函数中写入:
QRegExp regExp("[0-9.]{1,15}");
ui->lineEdit_ipv4_addr->setValidator(new QRegExpValidator(regExp,this));
ui->lineEdit_ipv4_netmask->setValidator(new QRegExpValidator(regExp,this));
其中:
[0-9.]表示只允许0-9之间的数字和特殊符号.的输入,如果需要限制字母,则改为[a-zA-Z]即可。
{1,15}表示匹配1次,并且最多允许输入15个元素。
2.按照一定的格式限制输入
还是拿ip输入框为例:
要求输入类似192.168.1.1这种ip地址,并且点不用自己输入,直接显示在输入框,输入3个数字后自动跳转点后面继续输入:
QString ipRangeStr = "(?:[0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])";//限制最大输入255
QRegExp ipRegex ("^" + ipRangeStr
+ "\\." + ipRangeStr
+ "\\." + ipRangeStr
+ "\\." + ipRangeStr + "$");
auto ipValidator = new QRegExpValidator(ipRegex,this);//检查其有效性
ui->lineEdit_ipv4_addr->setValidator(ipValidator);
ui->lineEdit_ipv4_addr->setInputMask("000.000.000.000");
更多用法:
Character Meaning
A
ASCII alphabetic character required. A-Z, a-z.
a
ASCII alphabetic character permitted but not required.
N
ASCII alphanumeric character required. A-Z, a-z, 0-9.
n
ASCII alphanumeric character permitted but not required.
X
Any character required.
x
Any character permitted but not required.
9
ASCII digit required. 0-9.
0
ASCII digit permitted but not required.
D
ASCII digit required. 1-9.
d
ASCII digit permitted but not required (1-9).
#
ASCII digit or plus/minus sign permitted but not required.
H
Hexadecimal character required. A-F, a-f, 0-9.
h
Hexadecimal character permitted but not required.
B
Binary character required. 0-1.
b
Binary character permitted but not required.
>
All following alphabetic characters are uppercased.
<
All following alphabetic characters are lowercased.
!
Switch off case conversion.
\
Use \ to escape the special characters listed above to use them as separators.
只需在双引号中标明要用的格式
“000.000.000.000;”是一个IP地址
“HH:HH:HH:HH:HH:HH;0”是一个MAC地址。
“\\0\\xHHHH;0”是只允许输入一个16位的十六进制数。
文章浏览阅读9.2k次,点赞13次,收藏114次。【Java案例】编写银行存取款程序,实现简单的存取款功能。_java银行存取款代码
文章浏览阅读609次,点赞3次,收藏4次。文章目录rt-u8g2u8g2 的特点:效果安装点击编译,下载,进入finsh界面rt-u8g2链接u8g2 原先是 Arduino 平台上的一个单色屏驱动,现在移植到了 rt-thread,可以满足各种各种各样的需求。u8g2 的特点:支持近 200 种单色屏,移植方便支持各种绘图函数、图像与非操作,自带用户按键检测支持 unicode 和 utf8,自带 100 多种字体和 100 多个 icon效果安装添加完后,是这样的,右击图标点击详细配置,勾选内容后,保存ctr_rtthread使用ssd
文章浏览阅读974次。这样变基到当前仓库分支最新的提交,并将本地的提交应用到最新的提交之上,与普通git pull命令不同,git pull --reabse会将本地的提交变基到最新的提交之上,而不是将本地的提交和远程的提交合并。你本地没有拉master代码,但是你本地提交了一个评审,但是还没和入,这个之后pull一下会把你上次代码更新到这次所有的代码都进行一个对比,如何提交这个。git提交之后再pull导致很多代码被修改,但是修改又不是你修改的,导致你本地很多修改,怎么抛弃掉这些修改呢。然后我们本地执行下面这个命令。_git 合并分支时,有许多不是项目的修改
文章浏览阅读1.1w次,点赞7次,收藏34次。vue-grid-layout的使用、实例、遇到的问题和解决方案_vue-grid-layout
文章浏览阅读218次。然后连接一个数据源,就会在下面自动产生一个添加附件的组件。把这个控件复制粘贴到页面里,就可以单独使用来上传了。插入一个“编辑”窗体。_powerapps点击按钮上传附件
文章浏览阅读264次。(1) Abstraction (抽象)(2) Polymorphism (多态)(3) Inheritance (继承)(4) Encapsulation (封装)_"object(cnofd[\"ofdrender\"])十条"
文章浏览阅读301次。题目大意给定一棵有N个点的树,所有节点的权值都为0。有K次操作,每次指定两个点s,t,将s到t路径上所有点的权值都加一,最后输出K次操作完毕后权值最大的那个点的权值。分析算得上是树上差分的模板题了。说一下普通的差分。现在有这么一个问题,给定一个序列A,有K个修改,每个修改将[L,R]中的数加1,最后问其中的最大数。最普通的做法就是每次跑一遍[L,R],并更新最大值,显然这样做可能会..._usaco 差分
文章浏览阅读201次。Leetcode #315: 计算右侧小于当前元素的个数题目题干示例题解方法一:蛮力法。PythonC++方法二:使用容器。PythonC++方法三: 构建二叉搜索树。C++题目题干该问题计算右侧小于当前元素的个数 题面:You are given an integer array nums and you have to return a new counts array. The counts array has the property where counts[i] is the num_找元素右边比他小的数字
文章浏览阅读142次。Accept-Ranges告知客户端服务器是否可以处理范围请求(可以:bytes,不可以:none)Age告诉客户端,源服务器在多久前创建了响应,单位为秒ETag首部字段 ETag 能告知客户端实体标识。它是一种可将资源以字符串形式做唯一性标识的方式。服务器会为每份资源分配对应的 ETag值 另外,当资源更新时,ETag 值也需要更新。生成 ETag 值时,并没有统一的算法..._web响应的首部内容
文章浏览阅读128次。Centos7最简搭建NFS服务器_centos7 搭建nfs server
文章浏览阅读1.2k次,点赞2次,收藏3次。前言mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。..._mybaitis-plus ruledataobjectattributemapper' and 'com.picc.rule.management.d
文章浏览阅读325次。EECE 1080C / Programming for ECESummer 2022Laboratory 4: Global Functions PracticePlagiarism will not be tolerated:Topics covered:function creation and call statements (emphasis on global functions)Objective:To practice program development b_eece1080c