Как мне получить позицию QSlider bar в Qt? - PullRequest
2 голосов
/ 03 июня 2019

Я использую объект QSlider в своем приложении Qt, и я хочу получить положение ползунка при его перемещении.Я попытался использовать функцию pos(), но она всегда возвращает QPoint() с одинаковыми значениями x и y (я полагаю, она возвращает позицию верхнего левого угла слайдера):

ui->horizontalSlider->pos();

Затем я попытался разделить ширину ползунка на 100 и добавить это значение, умноженное на ползунок value() в крайнее левое положение:

SliderStep = ui->horizontalSlider->width()/100;

(ui->horizontalSlider->value()) * SliderStep + ui->horisontalSlider->geometry().x();

Это вроде как работает для меня, но значенияне очень точны, так как SliderStep должен быть double , а кординаты являются целыми значениями .Я всегда замечал, что я могу получить значение слайдера, используя функции value() или sliderPosition(), поскольку они всегда возвращают для меня одинаковые значения:

qDebug()<<ui->horizontalSlider->sliderPosition();
qDebug()<<ui->horizontalSlider->value();

Итак, мой вопрос: есть ли более удобный или«правильный» способ получить координаты ползунка?В чем разница между этими двумя функциями?Любая помощь приветствуется.

...