Получить физические координаты компонента виджета, QSlider |
Здравствуйте, гость ( Вход | Регистрация )
Получить физические координаты компонента виджета, QSlider |
Andrewshkovskii |
13.10.2009, 13:39
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Что нужно : получить координаты ползунка у слайдера.
Зачем : для того, что бы реализовать вот это т.е рисовать линию на QGraphicView прямо под ползунком. Необходимо учесть, что максимальное значение слайдера может меняться во время выполнения программы. Сообщение отредактировал Andrewshkovskii - 13.10.2009, 13:41 |
|
|
kwisp |
13.10.2009, 13:46
Сообщение
#2
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
Andrewshkovskii,
а вычислять координату в соответсвии с QSlider::pos() & QSlider::sliderPosition() не пробовал? |
|
|
Andrewshkovskii |
13.10.2009, 13:59
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Не смотрел ещё.
pos() возвратит позицию виджета относительно родительского? у меня просто сладер лежит в лейауте3, который лежит в лейауте2, а лейаут2, лежит в лейауте1...Я так понимаю он вернет позицию левого верхнего угла слайдера? А вот sliderPosition не понятно, возвращает int, это число относительного чего, и чем является?.. |
|
|
kwisp |
13.10.2009, 15:07
Сообщение
#4
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
можно узнать глобальные координаты слайдера
а sliderPosition() это позиция ползунка в int ты сам задаешь градацию. обычно от 0 до 100. |
|
|
Andrewshkovskii |
13.10.2009, 15:34
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Глобальные я понял как найти..а вот QSlider::SliderPosition возвращает int QSlider::value() .. а нужно как-то узнать, как найти координату ползунка, что бы под ним на нарисовать линию, до нижней координаты QGraphicView..
|
|
|
kwisp |
13.10.2009, 15:45
Сообщение
#6
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
ну раздели длину в всего слайдера на максимальное значение value() получишь примерное прирощение координаты ползунка на единицу value()
|
|
|
Litkevich Yuriy |
13.10.2009, 15:48
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
А вот sliderPosition не понятно, возвращает int, это число относительного чего, и чем является? Цитата If tracking is enabled (the default), this is identical to value. Andrewshkovskii, я думаю тут без наследования не обойтись. Стоит поменять стиль и все размеры изменятся. Лучше унаследоватся и получить доступ к внутренностям. |
|
|
Andrewshkovskii |
13.10.2009, 15:50
Сообщение
#8
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Ну стиль меняться не будет, это лаба, а не продакшн код:) Просто потраченное время не будет стоить результата...
Конечно, если смотреть со стороны получаемого опыта.. В общем попробую так, как посоветовал kwisp |
|
|
Andrewshkovskii |
13.10.2009, 16:23
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
ну раздели длину в всего слайдера на максимальное значение value() получишь примерное прирощение координаты ползунка на единицу value() Подумал я..именно так не получиться, если длина слайдера , допустим будет 254, а макс. значение 7400.. то результат будет меньше 1..я понимаю, что это примерное значение получается..но не настолько же)) |
|
|
kwisp |
13.10.2009, 16:39
Сообщение
#10
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
если честно не пойму.
ты все равно такие мелкие передвижения не увидишь на одно деление из 7400. просто у тебя шаг будет double и всё. берешь value() и узнаешь сколько там пикселей уместилось. |
|
|
Текстовая версия | Сейчас: 9.11.2024, 3:52 |