Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Павел_F. от Январь 04, 2010, 23:43



Название: Можно ли ограничить ввод числа несколькими интервалами?
Отправлено: Павел_F. от Январь 04, 2010, 23:43
Дано четыре числа( double) a, b, c, d. Нужно что бы число x, вводимое в чем-нибудь типа QLineEdit, QDoubleSpinBox, находилось в одном из интервалов ab, сd( т.е. чтобы было верно  (a <= x && x <= b) || (c <= x && x <= d) ). Хочется сделать что бы другое число просто нельзя ввести, возможно ли?


Название: Re: Можно ли ограничить ввод числа несколькими интервалами?
Отправлено: BRE от Январь 04, 2010, 23:52
Посмотри на QValidator и его производные.


Название: Re: Можно ли ограничить ввод числа несколькими интервалами?
Отправлено: Павел_F. от Январь 05, 2010, 00:11
Там всех валидаторов то... QIntValidator не подходит из-за интов. QDoubleValidator не подходит, там только один интервал. QXmlSchemaValidator совсем не то. Сам QValidator абстрактный, не то.
Остается только QRegExpValidator... Но вот как для него сам RegExp написать, чтоб работало?


Название: Re: Можно ли ограничить ввод числа несколькими интервалами?
Отправлено: BRE от Январь 05, 2010, 00:13
А сделать свой класс валидатор?
А производные посмотреть в качестве примера.  :)


Название: Re: Можно ли ограничить ввод числа несколькими интервалами?
Отправлено: Павел_F. от Январь 05, 2010, 00:14
Свой делать я всегда успею... Это не проблема, чего там... только одна чисто виртуальная функция validate и все. Может все уже есть, я просто не знаю.


Название: Re: Можно ли ограничить ввод числа несколькими интервалами?
Отправлено: BRE от Январь 05, 2010, 00:16
Свой делать я всегда успею... Это не проблема. Может все уже есть, я просто не знаю.
Удивительно почему Тролли не догадались сделать валидатор для двух double интервалов, да и для трех могли бы... Бездельники.  ;)


Название: Re: Можно ли ограничить ввод числа несколькими интервалами?
Отправлено: Павел_F. от Январь 05, 2010, 00:18
И не говорите...


Название: Re: Можно ли ограничить ввод числа несколькими интервалами?
Отправлено: BRE от Январь 05, 2010, 00:29
И не говорите...
Ждем...  ;)
В Qt6 обещают добавить супер класс, который еще больше облегчит программирование.
Код
C++ (Qt)
int main( int argc, char *argv[] )
{
QSdelatZashibisButton button( argc, argv );
return button.run();
}