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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Универсальный QLineEdit  (Прочитано 7390 раз)
NetWorm
Гость
« : Август 29, 2012, 10:58 »

Пишу щас пользовательский виджет... Вобщем ситуация такая. Есть например свойство в Едита typeEdit. В зависимости от которого у нас например появляется рядом кнопка при нажатии на которую появляется календарь, соответственно Едиту накладывается маска для ввода даты. Для ввода обычных чисел использую QIntValidator. Выставляю длинну и прочее в свойствах...

Собственно вопрос. Необходимо сделать ввод Double числа. Прием если стоит ограничение 10.2 т.е. 10 целой части и 2 дробной части.
Каким образом, не использую маску ввода, реализовать ввод такого числа. Что то вроде как это реализовано в SpinBox
Записан
_OLEGator_
Гость
« Ответ #1 : Август 29, 2012, 11:10 »

А чем QDoubleValidator и QRegExpValidator не подходит?
Не понятно, что надо.
Записан
NetWorm
Гость
« Ответ #2 : Август 29, 2012, 11:15 »

QDoubleValidator - вроде бы именно то что нужно, но он позволяет вводить сколько угодно символов целой части, и еще хотелось бы чтобы ввод был такой же как в SpinBox
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Август 29, 2012, 11:18 »

Код
C++ (Qt)
void QDoubleValidator::setRange ( double minimum, double maximum, int decimals = 0 ) [virtual]
Записан

Qt 5.11/4.8.7 (X11/Win)
NetWorm
Гость
« Ответ #4 : Август 29, 2012, 11:20 »

Это понятно! Но он ограничивает только дробную часть, целую могу вводить сколько угодно... И еще ставятся запятые
Записан
NetWorm
Гость
« Ответ #5 : Август 29, 2012, 12:01 »

Ну я так понял проще всего тут использовать класс QWidget а уже в зависимости от свойств создавать либо LineEdit либо QSpinBox
Записан
_OLEGator_
Гость
« Ответ #6 : Август 29, 2012, 12:25 »

Привет велосипедоизобретателям.

Странно, но QDoubleValidator не работает должным образом. В общем QRegExpValidator в помощь.
« Последнее редактирование: Август 29, 2012, 12:28 от _OLEGator_ » Записан
NetWorm
Гость
« Ответ #7 : Август 29, 2012, 12:29 »

Не работает оно все так как надо!!! Если можно приведите примерчик!!
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Август 29, 2012, 12:36 »

Не работает оно все так как надо!!! Если можно приведите примерчик!!
Опять эта тема. Работает, то Вы не разобрались

http://www.prog.org.ru/index.php?topic=22600.msg159044#msg159044
Записан
NetWorm
Гость
« Ответ #9 : Август 29, 2012, 13:50 »

Блин да не то это! Количество целых чисел можно ввести сколько угодно, но не больше чем указано... В данном случае 3.2 т.е. например 124.25 причем можно внести 4.25... Вот так надо но уже 1234.56 - ввести нельзя.
Записан
_OLEGator_
Гость
« Ответ #10 : Август 29, 2012, 13:53 »

Почитай про регулярные выражения.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Август 29, 2012, 14:11 »

Блин да не то это! Количество целых чисел можно ввести сколько угодно, но не больше чем указано... В данном случае 3.2 т.е. например 124.25 причем можно внести 4.25... Вот так надо но уже 1234.56 - ввести нельзя.
А Вас не смущает что "баг" в QDoubleValidator что-то уж слишком очевиден? Улыбающийся  Вы можете унаследоваться от QDoubleValidator и запретить ввод "больших", делов на неск минут. Но учтите что так Вы лишаете пользователя возможности забить введенную точку, что может его не устроить.
Записан
NetWorm
Гость
« Ответ #12 : Август 30, 2012, 06:57 »

Понятно, короче готового решения я так понимаю нет! Чтож будем писать самостоятельно то что нужно!!!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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