QT setInputMask (): как интерполировать строку с пользовательским вводом в QLineEdit - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу, чтобы пользователь ввел ввод в QLineEdit в следующем формате

Array {99, 99, 99, 99}

, где

1) Array { } уже присутствует в строке Edit.Пользователь вводит только целые числа через запятую.

2) Номер.Введенные целые числа могут отличаться.

Я пытался использовать setInputMask() для задачи (1) (обратная косая черта для экранирования символов)

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

Но это не работает.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 11 декабря 2018

Отказ от ответственности: это частичный ответ.

Для выполнения задачи (1) вы должны использовать двойные косые черты, чтобы избежать их.Из документации (и в вашем случае) необходимо экранировать только следующее: A, a, {, }.

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

В противном случаекомпилятор должен (должен) предупредить вас о warning: unknown escape sequence: '\S'

С задачей (2) идея заключалась бы в создании подкласса QLineEdit и динамическом обновлении inputMask() при каждом нажатии клавиши путем перегрузки keyPressEvent().Другой идеей было бы установить маску ввода, скажем, с сотнями 99 или x, а затем использовать регулярное выражение для проверки ввода пользователя.

...