QT setInputMask():如何在QLineEdit中用用户输入插入字符串

时间:2018-12-10 11:08:00

标签: qt qlineedit

我希望用户以以下格式在QLineEdit中输入输入

  

数组{99,99,99,99}

其中

1)Array { }已经存在于lineEdit中。用户仅输入逗号分隔的整数。

2)否。输入的整数可能有所不同。

我尝试将setInputMask()用于任务(1)(反斜杠以转义字符)

setInputMask("\A\r\r\a\y\{99\, 99\, 99\}");

但这不起作用。请帮忙。

1 个答案:

答案 0 :(得分:0)

免责声明:这是部分答案。

对于任务(1),应使用双反斜杠将其转义。从documentation(以及您的情况)中,仅需要转义以下内容:Aa{}

setInputMask("\\Arr\\ay\\{99\\,99\\,99\\}");

否则,编译器会(应该)警告您warning: unknown escape sequence: '\S'

对于任务(2),一个想法是子类QLineEdit,并通过重载keyPressEvent()在每次按键时动态更新inputMask()。另一个想法是设置一个输入掩码,例如,将其设置为一百个99x,然后使用一个regex来验证用户输入。