2013-05-18 1 views
0

У меня около 5 кнопок и один слайдер. Каждый раз, когда я нажимаю кнопку, вызывается функция для конкретной кнопки.Как получить значение положения ползунка в Qt Eclipse?

Однако, я также хочу, чтобы ползунок делал то же самое. Таким образом, вместо нажатия кнопки вы можете перетащить ползунок в 5 разных положений, и он будет делать то же самое. Тем не менее, я не знаю, как я могу подключить 5 разных положений ползунков к каждой кнопке. Любая помощь будет оценена по достоинству.

Благодаря

ответ

1

Я даже не знаю, что сказать ... это своего рода легко:

slider->setRange(0, 4); 
connect(slider, SIGNAL(valueChanged(int)), SLOT(onSliderValueChanged(int))); 

... 

void Widget::onSliderValueChanged(int value) 
{ 
    switch (value) 
    { 
    case 0: 
     return onPushButton0Clicked(); 
    ... 
    } 
} 

void Widget::onPushButton0Clicked() 
{ 
    // do stuff 

    slider->blockSignals(true); 
    slider->setValue(0); 
    slider->blockSignals(false); 
} 

... 
+0

Спасибо большое за это! Работает сейчас, но слайдер не реагирует время от времени, изменяя его, а затем внезапно переходит к значению. – JeremyK

+0

Ваш ползунок теперь имеет диапазон 5. Это означает, что для ползунка требуется изменить 1/5 часть его. Если вы хотите плавно перемещаться, вы можете, например, установить диапазон от 0 до 80 и слоты для кнопок вызова только для значений 0, 20, 40, 60 и 80. Вы также можете добавить прыжки на ближайшее допустимое значение по сигналу ползунка ' sliderReleased() '. В зависимости от того, чего вы пытаетесь достичь. – Amartel

+0

Спасибо, что поняли. Сейчас это работает, у меня был весь диапазон. Еще раз спасибо :) – JeremyK