Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt]Variable qui n'est pas modifiée

Slot appelant une fonction qui ne modifie pas la variable

    29 septembre 2008 à 14:44:37

    Bonjour à tous :) .

    Je code actuellement un programme (sans blague ^^ ) et, lorsqu'on déplace un curseur (QSlider) celui-ci appelle un slot (void setPop(QString pop)) qui doit modifier la valeur d'une variable.

    Voici un extrait de mon code :

    QObject::connect(barre, SIGNAL(valueChanged(int)), m_lcd, SLOT(display(int)));
                    QObject::connect(barre, SIGNAL(valueChanged(int)), this, SLOT(setAnnee(int)));
                    QObject::connect(barre, SIGNAL(valueChanged(int)), this, SLOT(setPop("texte")));
    
    
        zoneCentrale->setLayout(layoutPrincipal);
        setCentralWidget(zoneCentrale);
    
    
    }
    void FenPrincipale::setAnnee(int annee)
    {
        rh12->setText(QString::number(annee));
    }
    void FenPrincipale::setPop(QString pop)
    {
        rh22->setText(QString(pop));
    }
    


    Et voici l'extrait des "prototypes" :
    public slots:
        void setAnnee(int annee);
        void setPop(QString pop);
    


    En fait, lorsque la fonction setPop prend en charge une variable int tout va bien, mais avec une chaîne de caractères (QString) rien ne se passe :( (enfin, setAnnee fonctionne très bien, elle prend elle en charge une variable int)


    Tout se passe bien à la compilation mais lorsque je déplace le curseur, rh22 n'est pas modifié :colere2: .

    Voilà. Merci d'avance ;) .
    • Partager sur Facebook
    • Partager sur Twitter
      29 septembre 2008 à 15:47:13

      QObject::connect(barre, SIGNAL(valueChanged(int)), this, SLOT(setPop("texte")));
      

      Un petit rappel du tutoriel :

      Les arguments du signal doit correspondre au slot.
      Si le signal a "int" comme argument, le slot aussi.
      D'ailleurs, les signaux/slots n'acceptent que des TYPES (std::string,int,QString,etc) et non des valeurs, genre "texte".

      Il te faudra trouver une manière de contourner le problème.

      Une astuce pour savoir si une connexion a foiré est d'ajouter cette ligne dans le fichier .pro et de refaire qmake / make :

      CONFIG += console
      • Partager sur Facebook
      • Partager sur Twitter
      Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!

      [Qt]Variable qui n'est pas modifiée

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown