Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Axel от Май 26, 2008, 14:51



Название: QSlider: Вопрос по изменению текущего положения слайдера.
Отправлено: Axel от Май 26, 2008, 14:51
Здравствуйте !!!
Подскажите пожалуйста, как при клике мыши на полосе прокрутки заставить слайдер смещаться именно в то место, где был клик ? По умолчанию, слайдер смещается согласно pagestep.


Название: Re: QSlider: Вопрос по изменению текущего положения слайдера.
Отправлено: ритт от Май 26, 2008, 15:18
QStyle::sliderValueFromPosition(...)
setSliderPosition(...)


Название: Re: QSlider: Вопрос по изменению текущего положения слайдера.
Отправлено: Axel от Май 26, 2008, 15:36
Если не трудно, можно пример, не очень понятно как это использовать.


Название: Re: QSlider: Вопрос по изменению текущего положения слайдера.
Отправлено: ритт от Май 26, 2008, 15:46
Код:
void SomeSlider::mouseMoveEvent(QMouseEvent* event)
{
QStyleOptionSlider opt;
initStyleOption(&opt);

int left = 0;
int right = width();

int newPosition = QStyle::sliderValueFromPosition(minimum(), maximum(), event->pos().x() - left, right - left, opt.upsideDown);
setSliderPosition(newPosition);
}


Название: Re: QSlider: Вопрос по изменению текущего положения слайдера.
Отправлено: Axel от Май 26, 2008, 16:19
Большое спасибо!!!