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

loading...


0

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

数组{99,99,99,99}

哪里

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

2)没有 . 输入的整数可能会有所不同 .

我尝试使用 setInputMask() 执行任务(1)(反斜杠转义字符)

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

但这不起作用 . 请帮忙 .

loading...

1回答

  • 0

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

    对于你的任务(1),你应该使用双反斜杠来逃避它们 . 从documentation(在您的情况下),只需要转义以下内容: Aa{} .

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

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

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

评论

暂时没有评论!