Partage
  • Partager sur Facebook
  • Partager sur Twitter

[QT]envoyer un int a la fonction QPushButton

ou plutot " comment ... ?" ^^

    19 mars 2008 à 15:42:01

    bonjour , je crée un petit rpg sous QT pour l'instant j'installe juste les bases j'ai 4 fichier (personnage.cpp , .h , MaFenetre.cpp , .h , main.cpp)j'essaye d'envoyer un int a une fonction afficherVie de MaFenetre :



    1. /* Personnage.cpp
    2. fonction de la classe personnage
    3. */
    4. #include "Personnage.h"
    5. Personnage::Personnage() : m_vie(100)
    6. {
    7. }
    8. int Personnage::getVie() const
    9. {
    10.     return m_vie;
    11. }

    1. /* Personnage.h
    2. header de Personnage.cpp
    3. */
    4. #ifndef DEF_PERSONNAGE
    5. #define DEF_PERSONNAGE
    6. class Personnage
    7. {
    8.     public:
    9.     Personnage();
    10.     int getVie() const ;
    11.     private :
    12.     int m_vie;
    13. };
    14. #endif

    1. /* MaFenetre.h
    2. prototype des fonctions de MaFenetre.cpp
    3. */
    4. #ifndef DEF_MAFENETRE
    5. #define DEF_MAFENETRE
    6. #include <QApplication>
    7. #include <QWidget>
    8. #include <QPushButton>
    9. class MaFenetre : public QWidget // On hérite de QWidget (IMPORTANT)
    10. {
    11.     public:
    12.     MaFenetre();
    13.     void afficherVie(int vie);
    14.     private:
    15.     QPushButton *m_bouton;
    16. };
    17. #endif


    1. /* MaFenetre.cpp
    2. fonctions de La classe MaFenetre
    3. */
    4. #include <QApplication>
    5. #include <QWidget>
    6. #include "MaFenetre.h"
    7. MaFenetre::MaFenetre() : QWidget()
    8. {
    9.     setFixedSize(500, 500);
    10. }
    11. void MaFenetre::afficherVie(int vie)
    12. {
    13.  m_bouton = new QPushButton(vie , this);
    14.  m_bouton->show();
    15. }


    1. /*
    2. main.cpp
    3. */
    4. #include <QApplication>
    5. #include <QWidget>
    6. #include "MaFenetre.h"
    7. #include "Personnage.h"
    8. int main(int argc, char *argv[])
    9. {
    10.     QApplication app(argc, argv);
    11.     MaFenetre fenetre;
    12.     Personnage joueur;
    13.     fenetre.afficherVie(joueur.getVie);
    14.     fenetre.show();
    15.     return app.exec();
    16. }


    et le probleme c'est que cette ligne fait bloquer la compilation :

    1. m_bouton = new QPushButton(vie , this);


    j'ai essayer de toutes les facons :

    1. m_bouton = new QPushButton(+ vie + , this);


    1. m_bouton = new QPushButton(int vie , this);


    1. m_bouton = new QPushButton(""vie"" , this);


    mais rien n'a marcher , j'ai besoin d'aide s'il-vous-plait ! si vous pouviez me donner la formule !!

    merci d'avance !

    bon apres-midi.
    • Partager sur Facebook
    • Partager sur Twitter
      19 mars 2008 à 15:57:22

      Ca ne fonctionne pas au hazard hein ;)
      Regarde la doc' de QPushButton, vois-tu un constructeur qui peut prendre un entier ?
      => non.

      Il faut donc regarder ce que tu as comme outils pour faire une convertion.
      http://doc.trolltech.com/4.3/qstring.html#setNum
      • Partager sur Facebook
      • Partager sur Twitter
        19 mars 2008 à 16:10:16

        salut , je ne sais absolument pas comment me retrouver dans la doc ! e suis un peu nul en anglais !!! tu ne pourrais pas me dire quelle est cette fonction ( ou son prototype) et comment l'utiliser???

        merci :):)
        • Partager sur Facebook
        • Partager sur Twitter
          19 mars 2008 à 17:42:53

          Clique sur le lien de freecircus; c'est la première fonction et je t'assure qu'il n'y a pas besoin d'être bilingue pour comprendre son utilisation ( y a même un exemple de code).
          • Partager sur Facebook
          • Partager sur Twitter
            19 mars 2008 à 18:36:49

            d'accord , mais comme je vait pour afficher le QString ?

            m_bouton = new QPushButton(strVie , this);

            ne marche pas , il m'indique une erreur dans le main ...
            • Partager sur Facebook
            • Partager sur Twitter
              30 mars 2008 à 13:01:52

              salut , j'ai trouver comment faire marcher mais vous pouvez me dire pourquoi cette ligne :
              appel du constructeur de fenetre.cpp
              1. MaFenetre fenetre(joueur.getVie);

              constructeur :

              1. MaFenetre::MaFenetre(int vie) : QWidget()
              2. {
              3.     setFixedSize(500, 500);
              4.     strVie.setNum(vie);
              5. }

              et code :

              1. MaFenetre::MaFenetre(int vie) : QWidget()
              2. {
              3.     setFixedSize(500, 500);
              4.     strVie.setNum(vie);
              5. }


              ca marche quand je fait :
              1. MaFenetre fenetre(100);

              mais pas quand je vais
              1. MaFenetre fenetre(joueur.getVie);


              pourvez vous m'aider?

              merci !
              • Partager sur Facebook
              • Partager sur Twitter
                30 mars 2008 à 13:40:28

                je vais certainement dire une bétise du faite que je ne suis pas très fort en c++ mais essaye de mettre des paranthèses :
                1. MaFenetre fenetre(joueur.getVie());
                • Partager sur Facebook
                • Partager sur Twitter
                :)
                  30 mars 2008 à 14:02:05

                  ^^ !
                  you're the god !!
                  i love you !!
                  ca marche !!!
                  sans commentaire sur mon erreure ca peut arriver a tout le monde !
                  merci beaucoup ! :)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [QT]envoyer un int a la fonction QPushButton

                  × 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