Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Получить физические координаты компонента виджета
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
Andrewshkovskii
Что нужно : получить координаты ползунка у слайдера.
Зачем : для того, что бы реализовать вот это

т.е рисовать линию на QGraphicView прямо под ползунком.
Необходимо учесть, что максимальное значение слайдера может меняться во время выполнения программы.
kwisp
Andrewshkovskii,
а вычислять координату в соответсвии с QSlider::pos() & QSlider::sliderPosition() не пробовал?
Andrewshkovskii
Не смотрел ещё.
pos() возвратит позицию виджета относительно родительского? у меня просто сладер лежит в лейауте3, который лежит в лейауте2, а лейаут2, лежит в лейауте1...Я так понимаю он вернет позицию левого верхнего угла слайдера?
А вот sliderPosition не понятно, возвращает int, это число относительного чего, и чем является?.. :huh:
kwisp
можно узнать глобальные координаты слайдера
а sliderPosition() это позиция ползунка в int ты сам задаешь градацию.
обычно от 0 до 100.
Andrewshkovskii
Глобальные я понял как найти..а вот QSlider::SliderPosition возвращает int QSlider::value() .. а нужно как-то узнать, как найти координату ползунка, что бы под ним на нарисовать линию, до нижней координаты QGraphicView..
kwisp
ну раздели длину в всего слайдера на максимальное значение value() получишь примерное прирощение координаты ползунка на единицу value()
Litkevich Yuriy
Цитата(Andrewshkovskii @ 13.10.2009, 17:59) *
А вот sliderPosition не понятно, возвращает int, это число относительного чего, и чем является?
Цитата
If tracking is enabled (the default), this is identical to value.


Andrewshkovskii, я думаю тут без наследования не обойтись. Стоит поменять стиль и все размеры изменятся.

Лучше унаследоватся и получить доступ к внутренностям.
Andrewshkovskii
Ну стиль меняться не будет, это лаба, а не продакшн код:) Просто потраченное время не будет стоить результата...
Конечно, если смотреть со стороны получаемого опыта.. В общем попробую так, как посоветовал kwisp
Andrewshkovskii
Цитата(kwisp @ 13.10.2009, 16:45) *
ну раздели длину в всего слайдера на максимальное значение value() получишь примерное прирощение координаты ползунка на единицу value()

Подумал я..именно так не получиться, если длина слайдера , допустим будет 254, а макс. значение 7400.. то результат будет меньше 1..я понимаю, что это примерное значение получается..но не настолько же))
kwisp
если честно не пойму.
ты все равно такие мелкие передвижения не увидишь на одно деление из 7400.
просто у тебя шаг будет double и всё.
берешь value() и узнаешь сколько там пикселей уместилось.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.