[Qt] Afficher double dans un label

Fermé
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 - 18 juil. 2012 à 11:03
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 - 21 juil. 2012 à 11:16
Bonjour,
j'ai un slider, j'aimerais récupérer cette valeur et l'afficher dans un label, mon slider peut prendre les valeurs de 0 à 100 par pas de 1.
Une fois que j'ai cette valeur qui s'appelle slider_out, je voudrai la diviser par 100 pour obtenir une valeur comprise entre 0 et 1 ( soit 0.1, 0.2, 0.3 etc .. )
Mais mon label m'affiche soit 0 soit 1.
voici mon code :
void MainWindow::ShadowWindow(int slider_out) {
    double opF;
    opF = slider_out / 100;
    QString value = QString::number(opF);
    m_label1->setText("Trackbar Value = " + value);
}


Merci ! :)


A voir également:

2 réponses

loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
19 juil. 2012 à 00:43
Normal, et ceci n'a rien à voir avec Qt, mais avec le 'C'.
Il suffit d'écrire:
  opF = slider_out / 100.;
Bonne continuation.
1
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
19 juil. 2012 à 09:16
J'ajouterai même que normalement le compilateur devrait te mettre un "warning" de conversion de int vers double.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 845
19 juil. 2012 à 22:57
Non pas de warning dans ce sens (int vers double), il s'agit d'une conversion implicite.
0
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 86
19 juil. 2012 à 16:09
En effet cela marche ! Mais je ne comprend pas pourquoi ! Pourquoi, en rajoutant un point après 100, ça fait tout marcher ? C'est que comme ma variable est de type double, alors il faut que je divise par un nombre décimal & non par un entier ? .. Le point sous entant un "100.0" ?
Et oui, c'est en C++, mais comme Qt gère les widgets et tout, je me suis dit que ça provenait d'une mauvaise configuration de mon QString::number.

Merci en tous cas ! Tip top !
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
19 juil. 2012 à 16:25
100 en effet est interprété comme un entier => division entière, donc 0. "100." est interprété comme un nombre réel à cause du ".", comme tu l'a deviné. Dans ces cas là, le flottant est prédominant sur l'entier et tu as la valeur que tu cherches.
0
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 86
21 juil. 2012 à 11:16
Ahh ouais d'acc ! Merci beaucoup en tous cas, tu gères ! :)
0