在实际应用中,我们常常需要在界面上控制用户的输入行为,以此来简化数据的处理。在 Qt 中,我们可以利用正则表达式和输入掩码来达到这种效果,例如 IP 地址的输入。
首先,构建正则表达式,并通过 QLineEdit 的 setValidator 函数进行输入校验设置,从而控制输入行为。部分代码如下:
QRegExp rx("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");
QRegExpValidator *pReg = new QRegExpValidator(rx, this);
ipLineEdit->setValidator(pReg);
maskLineEdit->setValidator(pReg);
gatewayLineEdit->setValidator(pReg);
dnsLineEdit->setValidator(pReg);
可以看到,这里使用 QRegExpValidator 类来检查字符串是否符合正则表达式。这里对上面的正则表达式进行简单说明,更详细说明请查阅相关资料。
\d:匹配一个数字,等同于[0-9]
\.:匹配一个小数点
?:表示重复前面内容的0次或1次
2[0-4]\\d:涵盖了200~249之间的值
25[0-5]:涵盖了250~255之间的值
[01]?\\d\\d?:涵盖了0~199之间的值。
效果如下:
本文转自:QLineEdit 控制输入格式——正则表达式与输入掩码_阿基米东的博客-CSDN博客_qlineedit 正则表达式