Question

J'utilise un QSlider (v4.6) pour l'entrée et pour fournir une rétroaction à l'utilisateur. Pour les commentaires que je vais appeler la méthode setValue. Je suis en train de trouver un signal qui se déclenche uniquement si l'utilisateur a modifié la valeur. Les feux de signalisation valueChanged lorsque l'utilisateur a changé la valeur ainsi que quand je l'appelle setValue. sliderMoved ne se déclenche que lorsque l'utilisateur fait glisser le curseur (pas lorsque vous utilisez le clavier). J'ai vérifié l'API docs et ne peut pas sembler trouver quoi que ce soit. Est-ce que je manque quelque chose? Cela semble quelque chose qui serait commun. S'il n'y a pas un autre signal, comment recommanderiez-vous que je simule cette fonctionnalité? Dois-je mettre un drapeau avant d'appeler setValue, débrancher et rebrancher le signal chaque fois que j'appelle setValue ...?

Était-ce utile?

La solution

Bonne question, j'ai vérifié l'API et n'a pas pu trouver également un signal qui serait déclenché que si la valeur a été modifiée par l'utilisateur. La solution que vous proposez peut être la seule option, juste garder à l'esprit que vous ne devez pas déconnecter / connecter tous les signaux, il suffit d'utiliser la méthode de QObject::blockSignals:

slider->blockSignals(true);
slider->setValue(x);
slider->blockSignals(false);

L'espoir qui aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top