Russian Qt Forum
Ноябрь 24, 2024, 03:30
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Два диапазона значений в DoubleSpinBox
Страниц: [
1
]
2
3
4
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Два диапазона значений в DoubleSpinBox (Прочитано 19893 раз)
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Два диапазона значений в DoubleSpinBox
«
:
Январь 14, 2012, 12:39 »
Всем доброго времени суток.
Как известно в виджете DoubleSpinBox существует 2 свойства minimum и maximum, что позволяет установить допустимый диапазон вводимых значений.
Мне хотелось бы узнать, существует ли готовое решение, где было бы 2 таких диапазона.
К примеру: разрешить пользователю вводить числа от 0 до 1 и от 4 до 5.
Ну, а если такого решения не существует, то прошу оказать мне помощь в создании подобного компонента. Только тут будет упрощение: мне нужен не диапазон, а дополнительное конкретное число.
К примеру: разрешить пользователю вводить число 0.5 и числа из диапазона от 4 до 5.
Всем заранее спасибо.
Записан
Bepec
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #1 :
Январь 14, 2012, 12:50 »
Валидатор посмотрите. Он проверяет валидность вводимых данных, так что должен учесть все ваши пожелания.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #2 :
Январь 14, 2012, 19:58 »
прошу прощения, где я могу это посмотреть. В свойствах компонента не нашёл.
Записан
Bepec
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #3 :
Январь 14, 2012, 20:26 »
QDoubleValidator в ассистенте поищите.
К сожалению, помочь вам в его установке/настройке не могу, ранее не пользовался.
Поиск по форуму я думаю поможет.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #4 :
Январь 15, 2012, 14:29 »
Мне кажется, что этот класс нужен для других целей... Как я понял, он проверяет на валидность введённых данных из текстовой строки с учётом локалей, минимума, максимума, ранга и типа данных. В моём случае из DoubleSpinBox'а я извлекаю число типа double. Я с лёгкостью могу его проверить на валидность при помощи оператора if. Так что QDoubleValidator это не совсем то, что мне нужно.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #5 :
Январь 15, 2012, 14:42 »
может лучше такое сделать через радиокнопки? одна - пользователь хочет конкретное число (оно известно я так понимаю), вторая - пользователь вводит число в спинбокс.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
andrew.k
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #6 :
Январь 15, 2012, 15:09 »
Цитата: kambala от Январь 15, 2012, 14:42
может лучше такое сделать через радиокнопки? одна - пользователь хочет конкретное число (оно известно я так понимаю), вторая - пользователь вводит число в спинбокс.
Да. Это сразу минус юзабилити.
Каким образом пользователь узнает о всех этих "допустимых" диапазонах просто взглянув на спинбокс?
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #7 :
Январь 15, 2012, 15:54 »
Нет. Это не вариант. Представьте, у меня на форме 10 спинбоксов, а для одного, для которого нужна модификация с вводом, стоит радиокнопка. Это не то, хоть и на много проще. Я же программу создаю не для личного использования. Будет не эстетично
Записан
andrew.k
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #8 :
Январь 15, 2012, 16:06 »
в этом и суть, что не для себя жлаешь.
не вариант это как раз делать диапазоны.
допусти будет допустимые:
1..1000 и от 1000000.. 10001000
как я узнаю о существовании второго диапазона?
а потом захочешь сделать 3 таких диапазона или еще больше.
наверняка можно решить как-то еще раз радио кнопки не нравятся
Записан
Bepec
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #9 :
Январь 15, 2012, 17:14 »
Ловишь сигнал изменения значения, проверяешь в своей функции на валидность (т.е. вхождение в пределы), меняешь значение на стандартное (0 к примеру) и выводишь тултип с обозначением пределов.
Простое решение ^^
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #10 :
Январь 15, 2012, 17:51 »
Цитата: Bepec от Январь 15, 2012, 17:14
Ловишь сигнал изменения значения, проверяешь в своей функции на валидность (т.е. вхождение в пределы), меняешь значение на стандартное (0 к примеру) и выводишь тултип с обозначением пределов.
Простое решение ^^
Такой тултип достанет, т.к. для double ввод невалидных значений разрешен - они должны появляться в EditLine, иначе пользователю трудно ввести число. Др дело валидатор отсекает их прием. Обычно делают так:
- пользователь вводит, если "это число" (а не буква и др) то ввод отображается даже если число вне диапазона
- окно закрывается или фокус соскакивает с Edit или истекло время ожидания (напр 1 сек). Тогда проверяется на диапазон и если нет - модальный диалог с указанием что валидно (неплохо и предложить min/max/default)
Ну да, это конечно "не так просто"
Записан
Bepec
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #11 :
Январь 15, 2012, 17:59 »
Я и имел в виду, в момент установки значения. Обычно после потери фокуса происходит
Хотя я бы сделать версий 5-6 с разными вариантами
И потом сам бы пытался ввести ^^ Потому что теоретически может быть гуд, а на деле...
Записан
andrew.k
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #12 :
Январь 15, 2012, 18:53 »
это все чушь. пользователь должен видеть, что он может ввести.
а если для этого он должен сначала ввести что-то, получить отлуп узнать, что оказывается нужно было вводить.
надо пересмотреть подход.
Записан
Bepec
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #13 :
Январь 15, 2012, 19:05 »
Ещё бы узнать лучше, что хочет автор реализовать этими двумя диапазонами.
Мб подскажем лучшее решение?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #14 :
Январь 15, 2012, 19:34 »
Цитата: andrew.k от Январь 15, 2012, 18:53
это все чушь.
Для форумчан с громким голосом разжевываю:
Пример: диапазон 100-200, текущее значение 150. Пользователь перевел фокус и вводит напр 120. Он нажал 1, текст в Edit был selected, ну значит 150 заменилось на 1. Это значение невалидно, но выскакивать с алертом/тултипом явно плохо
Записан
Страниц: [
1
]
2
3
4
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...