Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Alex03 от Ноябрь 02, 2007, 09:22



Название: Добавить в QDoubleSpinBox inputMask типа DDDD.DDD;0 ?
Отправлено: Alex03 от Ноябрь 02, 2007, 09:22
Возможно ли без порождения своего класса?


Название: Re: Добавить в QDoubleSpinBox inputMask типа DDDD.DDD;0 ?
Отправлено: Kainit от Ноябрь 02, 2007, 10:05
QDoubleSpinBox *doubleSpinBox = new QDoubleSpinBox()
doubleSpinBox ->setDecimals(3 )
doubleSpinBox ->setSuffix(";0" )

Этого недостаточно?


Название: Re: Добавить в QDoubleSpinBox inputMask типа DDDD.DDD;0 ?
Отправлено: Alex03 от Ноябрь 02, 2007, 10:13
нет.
Мож я кривовато спосил но хочется чегото типа:
Код:
doubleSpinBox->lineEdit()->setInputMask("DDDD.DDD;0");
Вот только QDoubleSpinBox::lineEdit() не public а protected.


Название: Re: Добавить в QDoubleSpinBox inputMask типа DDDD.DDD;0 ?
Отправлено: pastor от Ноябрь 02, 2007, 10:22
В таком случае прийдёться наследоваться от QDoubleSpinBox


Название: Re: Добавить в QDoubleSpinBox inputMask типа DDDD.DDD;0 ?
Отправлено: Kainit от Ноябрь 02, 2007, 10:44
Да, истинно так, наследование - единственно разумно.


Название: Re: Добавить в QDoubleSpinBox inputMask типа DDDD.DDD;0 ?
Отправлено: Dodge от Ноябрь 02, 2007, 14:31
А что валидаторы для лайнэдита отменили уже?
зачем огород городить..

см в асисте - QValidator и его наследников


Название: Re: Добавить в QDoubleSpinBox inputMask типа DDDD.DDD;0 ?
Отправлено: Alex03 от Ноябрь 02, 2007, 16:20
А что валидаторы для лайнэдита отменили уже?
зачем огород городить..
Валидаторы - совсем другое. Там длина вводимой последовательности переменная, проверка только по факту ввода - потери фокуса и т.д.
Хочется для совсем глупого пользователя "обозначить" все "знакоместа", и чтобы он что ввёл - то и получил. Чтобы не было проблем с вводом точки/запятой и т.д.
Маску я немного не ту указал, хотел "9999.999;0". Сейчас вот думаю что по специфике задачи SpinBox может и не нужен, LineEdit-а в принципе хватит. Обычно просто вводится новое число.


Название: Re: Добавить в QDoubleSpinBox inputMask типа DDDD.DDD;0 ?
Отправлено: Dodge от Ноябрь 02, 2007, 16:26
Защищенного lineEdit()...
Указатель на лайн эдит, не обязательно получать на прямую. Я почти уверен, что если перебрать чилды SpinBox'а(ну на крайняк чилды, чилдов), то нужный лайнэдит найдется... проблема в другом, он же не просто так скрыт от пользователя... возможно задание пользовательской маски приведет к глюкам... да даже не возможно,, а скорее всего так и будет


Название: Re: Добавить в QDoubleSpinBox inputMask типа DDDD.DDD;0 ?
Отправлено: Alex03 от Ноябрь 02, 2007, 16:48
Защищенного lineEdit()...
Указатель на лайн эдит, не обязательно получать на прямую.
Я почти уверен, что если перебрать чилды SpinBox'а(ну на крайняк чилды, чилдов), то нужный лайнэдит найдется...
Угу, про это я думал....
Цитировать
проблема в другом, он же не просто так скрыт от пользователя... возможно задание пользовательской маски приведет к глюкам... да даже не возможно,, а скорее всего так и будет
И по этому решил не связываться. :)