Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: CyclicBarrier от Январь 02, 2012, 17:44



Название: QSlider, множественные сигналы
Отправлено: CyclicBarrier от Январь 02, 2012, 17:44
Если у QSlider кликнуть на полоске значений то QSlider начинает передавать множественные сигналы valueChanged(int) с постепенно изменяемым значением, пока не дойдёт до значения которое соответствует тому где был сделан клик.
Как сделать так, чтобы множественные valueChanged(int) передавались только тогда, когда пользователь таскает мышкой пимпочку у QSlider, а при клике на полоске значений передавался только один сигнал с конечным значением?


Название: Re: QSlider, множественные сигналы
Отправлено: popper от Январь 02, 2012, 20:37
Попробуй поиграть с
Код:
void QAbstractSlider::actionTriggered ( int action ) [signal]


Название: Re: QSlider, множественные сигналы
Отправлено: Igors от Январь 02, 2012, 20:52
Если у QSlider кликнуть на полоске значений то QSlider начинает передавать множественные сигналы valueChanged(int) с постепенно изменяемым значением, пока не дойдёт до значения которое соответствует тому где был сделан клик.
Как сделать так, чтобы множественные valueChanged(int) передавались только тогда, когда пользователь таскает мышкой пимпочку у QSlider, а при клике на полоске значений передавался только один сигнал с конечным значением?
sliderReleased - но это слишком примитивно. Обычно есть разделение типа Intemediate Action - пользователь таскает бубочку, значение принимается и отображается в edit box (который обычно рядом со слайдером), окна пытаются отобразить новое значения (если успеют), undo стек НЕ заполняется. И есть Final/Last Action - пользователь отпустил мышь, все, значение зафиксировано, может быть undone, окна его отобразили. В общем там работы хватает (если делать на совесть  :))