c++ - qscrollbar example
SeƱal de cambio de valor de QSlider (1)
Estoy usando un QSlider (v4.6) para la entrada, así como para proporcionar comentarios al usuario. Para los comentarios, llamaré al método setValue. Estoy intentando encontrar una señal que se activará solo si el usuario modificó el valor. La señal valueChanged se activa cuando el usuario cambia el valor, así como cuando llamo setValue. sliderMoved solo se dispara cuando el usuario arrastra el control deslizante (no cuando usa el teclado). Revisé los documentos API y parece que no puedo encontrar nada. ¿Me estoy perdiendo de algo? Esto parece algo que sería común. Si no hay otra señal, ¿cómo me recomendaría que simulara esta funcionalidad? ¿Debo establecer una marca antes de llamar a setValue, desconectar y volver a conectar la señal cada vez que llamo a setValue ...?
Buena pregunta, revisé la API y tampoco pude encontrar una señal que se activaría solo si el usuario modificara el valor. La solución que propuso puede ser la única opción, solo tenga en cuenta que no tiene que desconectar / conectar todas las señales, solo use el método QObject::blockSignals
:
slider->blockSignals(true);
slider->setValue(x);
slider->blockSignals(false);
Espero que ayude.