Название: Скроллер времени Отправлено: Igors от Октябрь 31, 2018, 17:10 Добрый день
Окно имеет 6 панелек (одновременно видимы 3). В каждой по скроллеру, из них 5 в принципе обычные (хотя и написан свой контрол), скроллируют "по пикселю" или "по айтему". А вот один попался урод - скроллер времени. Прокручиваемый диапазон может быть или мал (напр 0.0001-0.0002) или наоборот, велик. Вылазят такие проблемки: 1) Что давать уроду в setMinimum/setMaximum/setValue? Заманчиво сделать все double (кастомный контрол все равно имеем) 2) Как-то обобщить поведение этого урода с нормальными. Панелька - класс, у нее есть член - указатель на скроллер. Допустим для проблемы 1 решаем "просто пиксели" - тогда всякий раз нужно проверять "а какой это скроллер", и это невыносимо. Ф-ционал скроллера времени в принципе как у обычного. Напр юзер тыкнул мышей - определить какому времени это соответствует, ну или наоборот, нарисовать что-то в пикселе для заданного воемени. Разумеется есть "масштаб" - множитель для перевода пиксели<->время Какие есть соображения? Спасибо Название: Re: Скроллер времени Отправлено: deMax от Ноябрь 01, 2018, 10:23 У вас QSlider или QScrollBar?
1) да хоть int, просто выводите нужный текст. Вообще для времени неплохо сделать элемент с дизайном как в youtube или музыкальном редакторе(если масштаб важен). Название: Re: Скроллер времени Отправлено: Igors от Ноябрь 01, 2018, 15:54 Скроллер времени работает так же как и скроллер пр-ва, только в одном измерении. Помимо самого скроллера есть обязательные контролы для масштаба: Fit, Zoom In, Zoom Out, в аттаче пример их применения. Общее время конечно известно, но редактирование возможно не только в этом интервале, но и за его пределами.
Название: Re: Скроллер времени Отправлено: Igors от Ноябрь 02, 2018, 11:39 Пусть юзер зумит так что график становится меньше и меньше (потом станет точкой и даже исчезнет). Очевидно в какой-то момент скроллер должен стать неактивным (min = max = value), скроллить нечего.
Теперь наоборот, юзер увеличивает график по X, и вот он уже не влазит в область просмотра, нужно активировать скроллер. Но какие параметры ему выставить? Сам скроллер ничего не имеет (min = max = value). Да, есть текущий масштаб (zoom), ну и что с этим делать? Отсюда ясно - нужны какие-то еще (хранимые) данные, просто скроллер+масштаб недостаточно. Но какие, или "как их организовать"? Ну и вообще, не раз приходилось слышать что "важнейшим из всех искусств для нас является UI". Ладно, вот UI, почему никого нету? Все ушли "собирать", что ли? :) Название: Re: Скроллер времени Отправлено: deMax от Ноябрь 02, 2018, 11:56 так же как и скроллер пр-ва, не могу расшифровать сокращение.p.s. пока не очень понятно в чем проблема и что хотите? Вы хотите QSlider использовать для задания масштаба и позиции? Чем QScrollBar не устраивает? p.s.s. при разговоре о дизайне неплохо ссылаться на компоненты или картинки, а то у всех фантазия разная. Название: Re: Скроллер времени Отправлено: deMax от Ноябрь 02, 2018, 11:59 На что должен быть похож скроллер и что он должен делать?
Музыкальному плееру хватает обычного ползунка с точностью пару процентов, в редакторах звука есть полоса которая масштабируется колесиком мышки и позволяет удобно перемещаться по редактируемому файлу и точное позиционирование. Название: Re: Скроллер времени Отправлено: Igors от Ноябрь 02, 2018, 16:28 ..в редакторах звука есть полоса которая масштабируется колесиком мышки и позволяет удобно перемещаться по редактируемому файлу и точное позиционирование. Это вполне "в тему". Есть скроллер, как о сам выглядит - неважно, пусть хоть обычный QScrollBar для прокрутки графика (см рисунки выше). Как пересчитать параметры скроллера если масштаб графика меняется др контролом(ами)? |