Я использую объект 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();
Итак, мой вопрос: есть ли более удобный или«правильный» способ получить координаты ползунка?В чем разница между этими двумя функциями?Любая помощь приветствуется.