Я работаю над виджетами UI на пару дней и боролся за большую часть этого с проблемой, которая на первый взгляд казалась такой тривиальной!Создание пользовательского масштабируемого слайдера - процесс
Задача состояла в том, чтобы реализовать линию времени, которая может быть масштабирована по горизонтали. Просто!
Везде, где мышь находится горизонтально вдоль временной шкалы, должна удерживать линию, где она находится при масштабировании, и линия времени должна уменьшаться от этой точки. Тем не менее, относительно просто на поверхности!
Сложная часть, я обнаружил, искажала длину линии и значения «временной шкалы», поскольку она увеличивала свои относительные значения «пикселя» в виджетах и обновляла полосу прокрутки относительно любого масштабирования и коррекции место.
Это изображение иллюстрирует задачу:
реализация была в Qt и С ++, однако вызов и мой вопрос больше о процессе решения проблемы. (Извините мои неправильные теги).
Мой вопрос: (A) Как бы вы нарушили эту проблему, чтобы прийти к решению и реализации. (B) Как бы вы приблизились к «изучению» шагов для решения этой и подобных проблем.
Спасибо,
Если я могу прояснить проблему дальше, дайте мне знать (возможно общение с проблемой является проблема :))
Вы хотите изменить ширину горизонтального слайда, не меняя его масштаб? – kiwixz
Разве это не просто настройка диапазона в обработчике событий и шаг, если вы тоже хотите изменить этот шаг? Если это так, это всего лишь один метод для реализации, не так ли? – lpapp
@iKiWiXz - Что вы подразумеваете под «горизонтальным слайдом»? – cdevelop