QLineEdit设置掩码Ip

目的

有时,用单行编辑框想限制输入,但QLineEdit提供的setInputMask()方法用来限制输入字符或者数字还可以,但要做约束,得和验证器结合。

setInputMash()描述

此属性包含验证输入掩码
如果没有设置掩码,inputMask() 将返回一个空字符串。
设置QLineEdit的验证掩码。验证器可以代替掩码或与掩码结合使用;请参见setValidator()。
通过传递空字符串(“”),取消设置掩码并返回正常的QLineEdit操作。
下表显示了可以在输入掩码中使用的字符。在允许但不需要字符的情况下,需要空格字符作为空白的默认字符。

字符描述解释
AASCII alphabetic character required. A-Z, a-z.只能输入ASCII字母字符。A-Z,a-z。
aASCII alphabetic character permitted but not required.允许使用ASCII字母字符但不是必需的,可留空。
NASCII alphanumeric character required. A-Z, a-z, 0-9.只能输入ASCII字母数字字符。A-Z,a-z,0-9。
nASCII alphanumeric character permitted but not required.允许使用ASCII字母数字字符但不是必需的,可留空。
XAny character required.可以输入任何字符。
xAny character permitted but not required.允许使用任何字符但不是必需的,可留空。
9ASCII digit required. 0-9.只能输入ASCII数字字符。0-9。
0ASCII digit permitted but not required.允许使用ASCII数字字符但不是必需的,可留空。
DASCII digit required. 1-9.只能输入ASCII数字字符。1-9。
dASCII digit permitted but not required (1-9).允许使用ASCII数字字符但不是必需的(1-9)。
#ASCII digit or plus/minus sign permitted but not required.允许使用加号、减号符号的ASCII数字字符但不是必需的。
HHexadecimal character required. A-F, a-f, 0-9.需要十六进制字符。A-F,a-f,0-9。
hHexadecimal character permitted but not required.允许使用十六进制字符但不是必需的,可留空
BBinary character required. 0-1.需要二进制字符。0-1。
bBinary character permitted but not required.允许使用二进制字符但不是必需的,可留空
>All following alphabetic characters are uppercased.所有接下来的字母字符都是大写的。
<All following alphabetic characters are lowercased.所有接下来的字母字符都是小写的。
!Switch off case conversion.关闭大小写转换。
[ ] { }Reserved.保留。
\Use \ to escape the special characters listed above to use them as separators.使用\转义上面列出的特殊字符以将它们用作分隔符。

示例

1.只可输入整形数字
QLineEdit *lineEdit = new QLineEdit();
lineEdit->setInputMask("9999"); // 只可输入4位整数
2.只可输入Ip地址

以下是限制输入Ip格式,但数值是0-999范围

QLineEdit *lineEdit = new QLineEdit();
lineEdit->setInputMask("000.000.000.000;_"); // 只可输入3位带分号的整数,目的是限制输入3位数以内的IP地址

以下是使用正则表达式进行限制

    QRegExp ipRegex("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$");
    QValidator *ipValidator = new QRegExpValidator(ipRegex, this);
    ui->lineEdit->setValidator(ipValidator);

在这里插入图片描述

3.输入标识符
QLineEdit *lineEdit = new QLineEdit();
lineEdit->setInputMask("nnnnnnnnn"); // 只可输入9位字母和数字组成的标识符
4.设置只能输入浮点数
ui->lineEdit->setInputMask("000.000");
5.设置只能输入电话号码
ui->lineEdit->setInputMask("+99-999-999999");

其中,掩码语法中的"D"表示只能输入数字,“0"表示必须输入数字或者空格,”+“表示必须输入加号,”-"表示必须输入减号。
在这里插入图片描述

6.设置只能输入日期
ui->lineEdit->setInputMask("0000-00-00");

结尾

如果对你有所帮助,记得点个赞哟~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FreeLikeTheWind.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值