Bonjour ^^
Voilà j'ai décidé de vous posez la question suivante pour le logiciel que je code actuellement:
Comment fait on pour que le QSlider n'avance pas d'un "cran" quand on clique dessus mais qu'il avance jusqu'à la valeur située à l'endroit du clic?
J'espère m'être bien exprimé ^^'
Merci d'avance à tous de votre aide
PS: au début mon logiciel était en Java et j'avais posé cette question ici et la solution qu'on m'avait indiquée marchait (je donne le lien au cas où ça puisse vous aidez à m'aider :p )
EDIT: problème résolu:
Le problème a été résolu avec un peu de réflexion sur le calcul de la valeur du QSlider en fonction de x() (ou en fonction de y() si le QSlider est vertical) ^^
Voilà le code la solution:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void Slider::mousePressEvent(QMouseEvent *event) { float slidermargin = 8.0; // valeur correspondant à la petite marge entre le début de l'"objet" en lui même et le début des valeurs du QSlider (multipliée par 2) float xforslide = event->x() - slidermargin + (event->x()*(slidermargin*2.0))/maximum(); float valueToSet = xforslide*maximum()/(width() - (slidermargin*2.0)); setValue(valueToSet); }
La "marge" dont la largeur est celle de la largeur du trait vertical rouge (voir image en pj)
Merci quand même à vous![]()
Partager