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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Можно ли ограничить ввод числа несколькими интервалами?  (Прочитано 5922 раз)
Павел_F.
Гость
« : Январь 04, 2010, 23:43 »

Дано четыре числа( double) a, b, c, d. Нужно что бы число x, вводимое в чем-нибудь типа QLineEdit, QDoubleSpinBox, находилось в одном из интервалов ab, сd( т.е. чтобы было верно  (a <= x && x <= b) || (c <= x && x <= d) ). Хочется сделать что бы другое число просто нельзя ввести, возможно ли?
Записан
BRE
Гость
« Ответ #1 : Январь 04, 2010, 23:52 »

Посмотри на QValidator и его производные.
Записан
Павел_F.
Гость
« Ответ #2 : Январь 05, 2010, 00:11 »

Там всех валидаторов то... QIntValidator не подходит из-за интов. QDoubleValidator не подходит, там только один интервал. QXmlSchemaValidator совсем не то. Сам QValidator абстрактный, не то.
Остается только QRegExpValidator... Но вот как для него сам RegExp написать, чтоб работало?
Записан
BRE
Гость
« Ответ #3 : Январь 05, 2010, 00:13 »

А сделать свой класс валидатор?
А производные посмотреть в качестве примера.  Улыбающийся
Записан
Павел_F.
Гость
« Ответ #4 : Январь 05, 2010, 00:14 »

Свой делать я всегда успею... Это не проблема, чего там... только одна чисто виртуальная функция validate и все. Может все уже есть, я просто не знаю.
« Последнее редактирование: Январь 05, 2010, 00:16 от Павел_F. » Записан
BRE
Гость
« Ответ #5 : Январь 05, 2010, 00:16 »

Свой делать я всегда успею... Это не проблема. Может все уже есть, я просто не знаю.
Удивительно почему Тролли не догадались сделать валидатор для двух double интервалов, да и для трех могли бы... Бездельники.  Подмигивающий
Записан
Павел_F.
Гость
« Ответ #6 : Январь 05, 2010, 00:18 »

И не говорите...
Записан
BRE
Гость
« Ответ #7 : Январь 05, 2010, 00:29 »

И не говорите...
Ждем...  Подмигивающий
В Qt6 обещают добавить супер класс, который еще больше облегчит программирование.
Код
C++ (Qt)
int main( int argc, char *argv[] )
{
QSdelatZashibisButton button( argc, argv );
return button.run();
}
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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