Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: ymb от Февраль 15, 2010, 09:27



Название: Маска ввода и контроль значения для QLineEdit (Qt 4.6.0)
Отправлено: ymb от Февраль 15, 2010, 09:27
Код:    
ui->Edit1->setValidator(new QDoubleValidator(0, 90.0, 1, ui->Edit1));
ui->Edit1->setInputMask("#0.0");

После ввода с клавиатуры всех 3-х цифр не работают клавиши "BackSpace" и "Delete".
Изменить введённые цифры можно только перемещением клавишами со стрелками.
Если ввести только 2 цифры, то  клавиша "BackSpace" работает.
Так и должно быть? Или можно как-то это изменить?

То , что не работает ограничение на значение, об этом я уже прочитал на форуме.
Зачем тогда его вводить?


Название: Re: Маска ввода и контроль значения для QLineEdit (Qt 4.6.0)
Отправлено: ymb от Февраль 15, 2010, 13:25
Если убрать строку  ui->Edit1->setValidator(new QDoubleValidator(0, 90.0, 1, ui->Edit1));
и оставить только  ui->Edit1->setInputMask("#0.0");
то клавиши "BackSpace" и "Delete" работают.


Название: Re: Маска ввода и контроль значения для QLineEdit (Qt 4.6.0)
Отправлено: crossly от Февраль 15, 2010, 13:38
а зачем одновременно inputmask и валидатор??


Название: Re: Маска ввода и контроль значения для QLineEdit (Qt 4.6.0)
Отправлено: ymb от Февраль 15, 2010, 18:36
Валидатор для проверки значения. А маску для формата.
Если оставить только валидатор, то он ограничивает ввод букв. число можно вводить любое. Значение не проверяется.
Лучше тогда оставить только маску и проверку делать либо при выходе из LineEdit, либо когда буду присваивать значение какой-нибудь переменной.   


Название: Re: Маска ввода и контроль значения для QLineEdit (Qt 4.6.0)
Отправлено: bosfor от Июль 27, 2010, 15:40
Если оставить только валидатор, то он ограничивает ввод букв. число можно вводить любое. Значение не проверяется.

проверяется ...