Russian Qt Forum
Ноябрь 24, 2024, 04:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDoubleValidator. Что-то я его не понимаю.  (Прочитано 8846 раз)
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...
Или я не прав?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Ноябрь 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. Как исправить? Забить точку "корректный валидатор" не даст, придется выделить все число и перебить заново
Записан
Павел_F.
Гость
« Ответ #2 : Ноябрь 12, 2009, 16:01 »

Тогда почему QIntValidator не следует вашей логике и чесно не дает вводить "не правильное" число?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Ноябрь 12, 2009, 16:21 »

Тогда почему QIntValidator не следует вашей логике и чесно не дает вводить "не правильное" число?
Потому что у него нет злополучной точки - а значит и этих проблем
Записан
smartchecker
Гость
« Ответ #4 : Ноябрь 13, 2009, 11:03 »

Тогда почему QIntValidator не следует вашей логике и чесно не дает вводить "не правильное" число?
Потому что у него нет злополучной точки - а значит и этих проблем
Тогда какой солюшн у этой проблемы?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Ноябрь 13, 2009, 13:03 »

Тогда какой солюшн у этой проблемы?
Я просто вызываю QDoubleValidator::validate и если он не возвращает Acceptable - значение в переменную не принимаю
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 22.