Qt实战案例(9)——利用QLineEdit设置输入掩码来限制输入内容
目录一、输入掩码介绍二、代码示例2.1 input Mask介绍2.2 input Mask示例2.3 输入与输出三、拓展——输入约束一、输入掩码介绍QLineEdit提供了输入掩码(input Mask)来限制输入的内容,可以使用一些特殊的字符来设置输入的格式和内容,这些字符中有的起限制作用且必须要输入一个字符,有的只是起限制作用,但可以不输入字符而是以空格代替。这些特殊字符含义如下表所示。字符
·
一、输入掩码介绍
QLineEdit提供了输入掩码(input Mask)来限制输入的内容,可以使用一些特殊的字符来设置输入的格式和内容,这些字符中有的起限制作用且必须要输入一个字符,有的只是起限制作用,但可以不输入字符而是以空格代替。
这些特殊字符含义如下表所示。
字符(必须输入) | 字符(可留空) | 含义 |
A | a | 只能输入A~Z,a~z |
N | n | 只能输入A~Z,a~z,0~9 |
X | x | 可以输入任意字符 |
9 | 0 | 只能输入0~9 |
D | d | 只能输入1~9 |
# | 只能输入加号(+),减号(-),0~9 | |
H | h | 只能输入十六进制字符,A~F,a~f,0~9 |
B | b | 只能输入二进制字符0或1 |
> | 后面的字母字符自动转换为大写 | |
< | 后面的字母字符自动转换为小写 | |
! | 停止字母字符的大小写转换 | |
\ | 将该表中的特殊字符正常显示用作分隔符 |
二、代码示例
2.1 input Mask介绍
当需要用到输入掩码时,只需要修改input Mask的值即可。
2.2 input Mask示例
将lineEdit的属性设置为:
>AA-90-bb-! aa\#H ;*
其含义如下:
- “>”表明后面输入的字母自动转为大写;
- “AA”表明开始必须输入两个字母,而且会自动变为大写(因为>);
- “-”表示分隔符,直接显示;
- “9”表示必须输入一个数字;
- “0”表示输入一个数字或者留空;
- “bb”表示留空或者输入两个二进制字符0或1;
- “!”表示停止大小写转换,即最开始的“>”不再起作用;
- “aa”表示可以留空,或者输入两个字母;
- “#”表示将“#”作为分隔符,因为“#”在这里有特殊含义,所以其前面要加上“\”;
- “H”表示必须要输入一个十六进制的字符;
- “*”表示用
*
来填充空格;
2.3 输入与输出
初始LineEdit如下:
输入字符后LineEdit如下:
【注】:也可以调用setInputMask()函数来设置输入掩码。
在lineEdit上右击转到returnPressed()槽:
输入如下内容:
void MainWindow::on_lineEdit_returnPressed()
{
qDebug()<<ui->lineEdit->text();//输出lineEdit的内容
qDebug()<<ui->lineEdit->displayText();//输出lineEdit显示的内容
}
这时运行程序进行输入,完成后按下回车键,可以查看输出内容。
如输入如下内容:
输出格式如下:
"AA-11-0- za#a"
"AA-11- 0- za#a"
需要注意的是,如果没有输入完必须要输入的字符,按下回车是没有效果的。
三、拓展——输入约束
除此之外,还可以使用验证器类QValidator对输入进行约束,代码如下:
//新建验证器,指定范围为100~999
QValidator *validator=new QIntValidator(100,999,this);
//使用验证器
ui->lineEdit2->setValidator(validator);
这样,lineEdit2就只能输入1000~999之间的数字。
除此之外,QValidator类还提供了QDoubleValidator用来设置浮点数。
ok,以上便是本文的全部内容了,如果对你有所帮助,记得点个赞哟~
更多推荐
已为社区贡献1条内容
所有评论(0)