我希望用户以以下格式在QLineEdit中输入输入
数组{99,99,99,99}
其中
1)Array { }
已经存在于lineEdit中。用户仅输入逗号分隔的整数。
2)否。输入的整数可能有所不同。
我尝试将setInputMask()
用于任务(1)(反斜杠以转义字符)
setInputMask("\A\r\r\a\y\{99\, 99\, 99\}");
但这不起作用。请帮忙。
答案 0 :(得分:0)
免责声明:这是部分答案。
对于任务(1),应使用双反斜杠将其转义。从documentation(以及您的情况)中,仅需要转义以下内容:A
,a
,{
,}
。
setInputMask("\\Arr\\ay\\{99\\,99\\,99\\}");
否则,编译器会(应该)警告您warning: unknown escape sequence: '\S'
对于任务(2),一个想法是子类QLineEdit
,并通过重载keyPressEvent()
在每次按键时动态更新inputMask()
。另一个想法是设置一个输入掩码,例如,将其设置为一百个99
或x
,然后使用一个regex来验证用户输入。