Russian Qt Forum
Ноябрь 24, 2024, 05:57
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Два диапазона значений в DoubleSpinBox
Страниц:
1
[
2
]
3
4
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Два диапазона значений в DoubleSpinBox (Прочитано 19931 раз)
andrew.k
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #15 :
Январь 15, 2012, 20:41 »
че разжевывать?
ты сам перечитай первый пост, а не с середины.
человек хочет два диапазона в одном контроле.
понятно что рализовать это можно, я говорил, что это не дружественно.
как пользователь должен узнать, что можно вводить, а что нельзя не начав вводить?
Записан
popper
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #16 :
Январь 15, 2012, 23:36 »
Цитата: __Heaven__ от Январь 14, 2012, 12:39
Всем доброго времени суток.
Только тут будет упрощение: мне нужен не диапазон, а дополнительное конкретное число.
К примеру: разрешить пользователю вводить число 0.5 и числа из диапазона от 4 до 5.
Раз задача сводится только к дополнительному числу, а не диапазону, посмотри, может быть логика приложения может быть реализована с помощью QAbstractSpinBox::specialValueText
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #17 :
Январь 16, 2012, 07:15 »
andrew.k
, пользователь знает, какие числа он может туда вводить, так как возле спина стоит подсказка.
popper
, что-то я так и не понял, что это за есть такое QAbstractSpinBox и с чем его едят...
Записан
Bepec
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #18 :
Январь 16, 2012, 09:39 »
Igors, а попробовать перехватить снятие фокуса, или же временной промежуток, как предлагали?
Записан
andrew.k
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #19 :
Январь 16, 2012, 10:11 »
Цитата: __Heaven__ от Январь 16, 2012, 07:15
andrew.k
, пользователь знает, какие числа он может туда вводить, так как возле спина стоит подсказка.
Подсказка это хинт или лабел с надписью: сюда можно вводить либо 0.5 либо от 4 до 5?
А что это за магические числа? Любопытно.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #20 :
Январь 16, 2012, 12:19 »
Да. Это лэйбел, на котором написано, что содержание элемента в расплаве (0.003, 0.01-0.08)% от массы расплава. вот, что это за магические числа. Я не знаю, как мне сделать эту дырку между 0.003 и 0.01. Конечно же можно было при выходе из окошка ввода заменять неверное число на верное, но при этом будет "обман" пользователя. Он может не заметить этого и расчёт пойдёт уже по другим процентам...
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #21 :
Январь 16, 2012, 12:44 »
сделай диапазоном сегмент [0.003, 0.08], после ввода проверяй на валидность если число попадает в интервал (0.003, 0.01): если значение плохое, то покажи месседжбокс с вариантами "поставить 0.003", "поставить 0.01" и "ввести другое самому".
Записан
Изучением 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
«
Ответ #22 :
Январь 16, 2012, 12:52 »
Все равно не понимаю.
Содержание алкоголя в бутылке пива 8% - понимаю.
Содержание алкоголя в бутылке пива от 4-8% - понимаю.
Содержание алкоголя в бутылке пива (0.003, 0.01-0.08)% - не понимаю)
А вдруг я буду пользоваться твоей программой?)
Записан
popper
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #23 :
Январь 16, 2012, 14:00 »
Класс QDoubleSpinBox есть наследник класса QAbstractSpinBox, в котором определено свойство specialValueText. Посмотри справку про это свойство. Оно определяет, какой текст должен отображаться при достижении нижней границы допустимого диапазона спинбокса.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #24 :
Январь 16, 2012, 15:05 »
Цитата: Bepec от Январь 16, 2012, 09:39
Igors, а попробовать перехватить снятие фокуса, или же временной промежуток, как предлагали?
Перехватывать нет необходимости, у валидатора есть метод fixup который позовется при снятии фокуса (и при нажатии Enter). Задержка также легко реализуется внутри валидатора (возвращать Intermediate если время не истекло). А приложение принимает данные по editingFinished
Вообще "а как с 2 диапазонами" не имеет самостоятельного значения - все то же самое что и с одним. А попытки проинформировать пользователя еще до начала ввода - ну для этого нужно слишком много экранного места, которого как правило нет. Обычно стоит с десяток edit'ов, (в 1 или неск столбиков), из них 2-4 имеют проверку на диапазон - где там писать min/max? А тултип легко может оказаться навязчивым, диапазон будет быстро запомнен. Проще и лучше вывалиться с диалогом и там уже расписать все возможные значения - это прекрасно обобщается.
Записан
andrew.k
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #25 :
Январь 16, 2012, 15:49 »
проще, но не лучше.
Страшный сон пользователя - приложение, которое на каждый чих и клик вываливает по мессаджбоксу.
__________________
Вы согласны с этим?|
[Ок] |
---------------------
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #26 :
Январь 16, 2012, 16:01 »
Цитата: andrew.k от Январь 16, 2012, 15:49
проще, но не лучше.
Страшный сон пользователя - приложение, которое на каждый чих и клик вываливает по мессаджбоксу.
Вот и обсуждается как "не на каждый".
Цитата: kambala от Январь 16, 2012, 12:44
сделай диапазоном сегмент [0.003, 0.08], после ввода проверяй на валидность если число попадает в интервал (0.003, 0.01): если значение плохое, то покажи месседжбокс с вариантами "поставить 0.003", "поставить 0.01" и "ввести другое самому".
Пользователь хочет ввести 0.005 (допустимое значение) и нажал первый ноль. Ваши действия?
Видимо когда тема становится длинной - отвечающие перестают ее читать ("не асилил"
)
Записан
BRE
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #27 :
Январь 16, 2012, 16:53 »
Цитата: Igors от Январь 16, 2012, 16:01
Пользователь хочет ввести 0.005 (допустимое значение) и нажал первый ноль. Ваши действия?
Подсветить красненьким фоном строку ввода?
и не забыть отключить кнопочку Ok/Save/...
«
Последнее редактирование: Январь 16, 2012, 17:03 от BRE
»
Записан
andrew.k
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #28 :
Январь 16, 2012, 17:21 »
Я бы для этой ситуации примерно такое поведение реализовал.
И тогда не нужны никакие издевательские хинты.
Плюс конечно слайдер покрасивее сделал, чтобы все точки 0.003, 0.01 и 0.08 были отрисованы.
Можно еще графически отрисовать диапазон и отдельную точку, чтобы пользователь понимал, почему слайдер ведет себя так странно.
И тогда внутри спинбокса можно "править бал" валидаторами и чем хочешь.
«
Последнее редактирование: Январь 16, 2012, 17:40 от andrew.k
»
Записан
andrew.k
Гость
Re: Два диапазона значений в DoubleSpinBox
«
Ответ #29 :
Январь 16, 2012, 17:39 »
Пейнт-дизайн на коленке.
Что-то вроде такого.
Записан
Страниц:
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...