Название: Как настроить QLineEdit, чтобы он принимал только числа и точку Отправлено: Bolonat от Июнь 10, 2019, 08:34 Здравствуйте!
Мне нужно сделать поле ввода для float, но такое, чтобы после запятой, можно было ввести произвольное количество цифр. Не использую QDoubleSpinBox, потому что в нем указывается точность, и если установить 5 знаков, то даже целое число отображается с пятью нулями после запятой. Это некрасиво. Хочу использовать для этой цели QLineEdit, помогите настроить валидатор так, чтобы в поле могли отображаться только цифры, минус и точка. Например: Код: ui->lE_CycleTime->setValidator(new QRegExpValidator(QRegExp("^([1-9][0-9]*|0)(\\.|,)[0-9]{2}"), this)); Название: Re: Как настроить QLineEdit, чтобы он принимал только числа и точку Отправлено: Old от Июнь 10, 2019, 09:36 Попробуйте QDoubleValidator.
Название: Re: Как настроить QLineEdit, чтобы он принимал только числа и точку Отправлено: Bolonat от Июнь 10, 2019, 10:24 Попробуйте QDoubleValidator. Не помогает. ПишуКод: ui->minVal->setValidator(new QDoubleValidator(0, 100, 2, this)); А если еще предварительно устанавливаю значение по умолчанию Код: ui->minVal->setText(QString::number(3.14)); Название: Re: Как настроить QLineEdit, чтобы он принимал только числа и точку Отправлено: __Heaven__ от Июнь 10, 2019, 13:06 Попробуйте поиграть с setNumberOptions у локали валидатора.
Название: Re: Как настроить QLineEdit, чтобы он принимал только числа и точку Отправлено: Bolonat от Июнь 10, 2019, 13:56 Нужного эффекта удалось добиться перехватом keyPressEvent() для QLineEdit.
Код: void LineEditEvent::keyPressEvent (QKeyEvent *event) Название: Re: Как настроить QLineEdit, чтобы он принимал только числа и точку Отправлено: kambala от Июнь 10, 2019, 14:15 скорее всего у тебя в ОС разделитель целой и дробной части — запятая, а не точка, поэтому точка и не вводится через QDoubleValidator.
в setNumberOptions не похоже, чтоб можно было задавать доступные разделители. остается только писать регулярное выражение (что-то типа ^(?:0|[1-9]\d*)(?:[.,]\d+)?$) или свою проверку ввода. Цитировать Нужного эффекта удалось добиться перехватом keyPressEvent() для QLineEdit. так оно ж не проверяет корректность ввода :)Название: Re: Как настроить QLineEdit, чтобы он принимал только числа и точку Отправлено: Bolonat от Июнь 10, 2019, 14:26 так оно ж не проверяет корректность ввода :) Корректность ввода я проверяю уже после того как нажали Ok в слоте accept(), а мне хотелось изначально в QLineEdit запретить ввод букв, и других ненужных символов. |