Qt6 QLineEdit 的 InputMask 使用

883 阅读1分钟

Qt InputMask

QLineEdit 有一个属性是 InputMask,可以使用 setInputMask() 进行设置,目的是设置字符掩码,限制用户输入的内容必须符合掩码。

下面是 Qt6 规范:

掩码字符含义
A只能是字母且必须,取值为 [a-zA-Z]
a同上但不是必须的
N字母或数字 [0-9a-zA-Z]
n同上但不是必须的
X任何字符
x同上但不是必须的
9数字 [0-9]
0同上但不是必须的
D数字 [1-9]
d同上但不是必须的
#数字或加减号 [0-9+-],不是必须的
H十六进制字符 [0-9a-fA-F]
h同上但不是必须的
B二进制字符 [01]
b同上但不是必须的

还可以使用元字符用于增强规则:

元字符含义
>所有字符都被转换为大写
<所有字符都被转换为小写
!关闭大小写转换
;c终止掩码规则并将空字符设置为 c
[ ] { }保留内容
\转义上述掩码字符或元字符

总结:

  • 掩码字符中,大写为必须输入,小写为可选
  • 元字符可以混合使用以便控制输入方式
实例含义
000.000.000.000;_IP 地址,_ 表示空白
HH:HH:HH:HH:HH:HH;_MAC 地址
0000-00-00ISO 日期,空白为空格 ' '
>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#许可证号码,大写,空白为 #

如果我需要设计一个输入 4 字节十六进制数字(大写,_ 表示空白)的输入框,可以使用 >HH-HH-HH-HH;_ 来表示。

参考

  1. doc.qt.io/qt-6/qlinee…