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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Можно ли ограничить ввод числа несколькими интервалами?  (Прочитано 6098 раз)
Павел_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.04 секунд. Запросов: 18.