Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: smartchecker от Ноябрь 12, 2009, 13:36



Название: QDoubleValidator. Что-то я его не понимаю.
Отправлено: smartchecker от Ноябрь 12, 2009, 13:36
Он вообще как работает?
делаю так
Код:
static const double Pi = 3.14159265358979323846264338327950288419717;

xValidator = new QDoubleValidator(1, 2*Pi, 2, xEdit);
xValidator->setNotation(QDoubleValidator::StandardNotation);
xEdit->setValidator(xValidator);
Как я понимаю он не должен давать вводить значения больше чем 2*Pi...
Или я не прав?


Название: Re: QDoubleValidator. Что-то я его не понимаю.
Отправлено: Igors от Ноябрь 12, 2009, 14:20
Он вообще как работает?
делаю так
Код:
static const double Pi = 3.14159265358979323846264338327950288419717;

xValidator = new QDoubleValidator(1, 2*Pi, 2, xEdit);
xValidator->setNotation(QDoubleValidator::StandardNotation);
xEdit->setValidator(xValidator);
Как я понимаю он не должен давать вводить значения больше чем 2*Pi...
Или я не прав?
Неправы :) QDoubleValidator разрешает вводить большие/меньшие значения для удобства редактирования - и это правильно. Вы легко можете сделать свой валидатор который пропускает только корректные значения, но работать с ним будет неудобно. Например Вы ввели

0.314

А надо 3.14. Как исправить? Забить точку "корректный валидатор" не даст, придется выделить все число и перебить заново


Название: Re: QDoubleValidator. Что-то я его не понимаю.
Отправлено: Павел_F. от Ноябрь 12, 2009, 16:01
Тогда почему QIntValidator не следует вашей логике и чесно не дает вводить "не правильное" число?


Название: Re: QDoubleValidator. Что-то я его не понимаю.
Отправлено: Igors от Ноябрь 12, 2009, 16:21
Тогда почему QIntValidator не следует вашей логике и чесно не дает вводить "не правильное" число?
Потому что у него нет злополучной точки - а значит и этих проблем


Название: Re: QDoubleValidator. Что-то я его не понимаю.
Отправлено: smartchecker от Ноябрь 13, 2009, 11:03
Тогда почему QIntValidator не следует вашей логике и чесно не дает вводить "не правильное" число?
Потому что у него нет злополучной точки - а значит и этих проблем
Тогда какой солюшн у этой проблемы?


Название: Re: QDoubleValidator. Что-то я его не понимаю.
Отправлено: Igors от Ноябрь 13, 2009, 13:03
Тогда какой солюшн у этой проблемы?
Я просто вызываю QDoubleValidator::validate и если он не возвращает Acceptable - значение в переменную не принимаю