Russian Qt Forum
Июль 21, 2019, 21:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Скроллер времени  (Прочитано 916 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 10479


Просмотр профиля
« : Октябрь 31, 2018, 17:10 »

Добрый день

Окно имеет 6 панелек (одновременно видимы 3). В каждой по скроллеру, из них 5 в принципе обычные (хотя и написан свой контрол), скроллируют "по пикселю" или "по айтему". А вот один попался урод - скроллер времени. Прокручиваемый диапазон может быть или мал  (напр 0.0001-0.0002) или наоборот, велик. Вылазят такие проблемки:

1) Что давать уроду в setMinimum/setMaximum/setValue? Заманчиво сделать все double (кастомный контрол все равно имеем)

2) Как-то обобщить поведение этого урода с нормальными. Панелька - класс, у нее есть член - указатель на скроллер. Допустим для проблемы 1 решаем "просто пиксели" - тогда всякий раз нужно проверять "а какой это скроллер", и это невыносимо.

Ф-ционал скроллера времени в принципе как у обычного. Напр юзер тыкнул мышей - определить какому времени это соответствует, ну или наоборот, нарисовать что-то в пикселе для заданного воемени. Разумеется есть "масштаб" - множитель для перевода пиксели<->время

Какие есть соображения?

Спасибо 
Записан
deMax
Программист
*****
Offline Offline

Сообщений: 599



Просмотр профиля
« Ответ #1 : Ноябрь 01, 2018, 10:23 »

У вас QSlider или QScrollBar?

1) да хоть int, просто выводите нужный текст.

Вообще для времени неплохо сделать элемент с дизайном как в  youtube или музыкальном редакторе(если масштаб важен).
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 10479


Просмотр профиля
« Ответ #2 : Ноябрь 01, 2018, 15:54 »

Скроллер времени работает так же как и скроллер пр-ва, только в одном измерении. Помимо самого скроллера есть обязательные контролы для масштаба: Fit, Zoom In, Zoom Out, в аттаче пример их применения. Общее время конечно известно, но редактирование возможно не только в этом интервале, но и за его пределами.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 10479


Просмотр профиля
« Ответ #3 : Ноябрь 02, 2018, 11:39 »

Пусть юзер зумит так что график становится меньше и меньше (потом станет точкой и даже исчезнет). Очевидно в какой-то момент скроллер должен стать неактивным (min = max = value), скроллить нечего.

Теперь наоборот, юзер увеличивает график по X, и вот он уже не влазит в область просмотра, нужно активировать скроллер. Но какие параметры ему выставить? Сам скроллер ничего не имеет (min = max = value). Да, есть текущий масштаб (zoom), ну и что с этим делать?

Отсюда ясно - нужны какие-то еще (хранимые) данные, просто скроллер+масштаб недостаточно. Но какие, или "как их организовать"?

Ну и вообще, не раз приходилось слышать что "важнейшим из всех искусств для нас является UI". Ладно, вот UI, почему никого нету? Все ушли "собирать", что ли?  Улыбающийся   
Записан
deMax
Программист
*****
Offline Offline

Сообщений: 599



Просмотр профиля
« Ответ #4 : Ноябрь 02, 2018, 11:56 »

так же как и скроллер пр-ва,
не могу расшифровать сокращение.

p.s. пока не очень понятно в чем проблема и что хотите? Вы хотите QSlider использовать для задания масштаба и позиции? Чем QScrollBar не устраивает?
p.s.s. при разговоре о дизайне неплохо ссылаться на компоненты или картинки, а то у всех фантазия разная.
Записан
deMax
Программист
*****
Offline Offline

Сообщений: 599



Просмотр профиля
« Ответ #5 : Ноябрь 02, 2018, 11:59 »

На что должен быть похож скроллер и что он должен делать?

Музыкальному плееру хватает обычного ползунка с точностью пару процентов, в редакторах звука есть полоса которая масштабируется колесиком мышки и позволяет удобно перемещаться по редактируемому файлу и точное позиционирование.
« Последнее редактирование: Ноябрь 02, 2018, 12:03 от deMax » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 10479


Просмотр профиля
« Ответ #6 : Ноябрь 02, 2018, 16:28 »

..в редакторах звука есть полоса которая масштабируется колесиком мышки и позволяет удобно перемещаться по редактируемому файлу и точное позиционирование.
Это вполне "в тему". Есть скроллер, как о сам выглядит - неважно, пусть хоть обычный QScrollBar для прокрутки графика (см рисунки выше). Как пересчитать параметры скроллера если масштаб графика меняется др контролом(ами)?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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