Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt]probleme de pointeur

petit probleme a la con!

Sujet résolu
    10 mars 2008 à 0:30:01

    b'jour, j'aurais une question de debutant...
    je m'entraine un peu a creer des widgets un peu partout, et j'ai un petit probleme...

    soit une fenetre geree par un MaFenetre.h et le .cpp correspondant le cpp definit la classe MaFenetre, y met deux boutons et un label, par exemple.
    dans le .h je definis un slot public: void change();

    je connecte ensuite mon bouton quit a la fonction quit... mon deuxieme bouton au slot change() afin de changer le texte du label...

    dans le .h, les pointeurs sont definis dans la section private => QPushButton *m_change;
    dans le .cpp, il est defini dynamiquement:
    1. QPushButton *m_change = new QPushButton ("changer texte du bouton quit", this);

    je connecte mon bouton change comme suit:
    1. QObject::connect(m_change, SIGNAL(clicked()),this , SLOT(change()));


    et enfin, mon slot (defini dans le .h et je n'ai pas oublie Q_OBJECT...)
    1. void MaFenetre::change()
    2. {
    3.     m_quit->setText("blablabla");
    4.     //QMessageBox::critical(this, "Titre de la fenêtre", "hello !");
    5. }


    le probleme est le suivant:
    si je ne mets que le QMessageBox, tout va bien, ce qui veut dire que le slot est correctement defini et que j'y arrive bien si je clique sur mon bouton change! (enfin je crois...)

    si jamais je rajoute un changement de texte du bouton quit (via son pointeur m_quit), ca plante l'appli!! (QPushButton *m_quit; dans le private du .h, et QPushButton *m_quit = new QPushButton("QUITTER", this); dans le constructeur, bien sur...

    il me semblait avoir deja utilisé un pointeur d'un widget defini avant dans un slot sans avoir eu de probleme... je ne comprends pas pourquoi celui ci fait tout planter...

    si une bonne ame voulait bien m'eclairer :-°
    • Partager sur Facebook
    • Partager sur Twitter
      10 mars 2008 à 2:01:19

      Citation : sfmaniaque


      dans le .h, les pointeurs sont definis dans la section private => QPushButton *m_change;
      dans le .cpp, il est defini dynamiquement:

      1. QPushButton *m_change = new QPushButton ("changer texte du bouton quit", this);

      si ton pointeur est défini en tant que membre de ta classe, dans le constructeur tu dois simplement faire :
      1. m_change = new QPushButton(...);
      • Partager sur Facebook
      • Partager sur Twitter
        10 mars 2008 à 3:12:25

        effectivement, expliqué comme ca, comment dirais je...
        faute de debutant! :p je suis nul! :o il suffit d'etre logique!

        je pense ne pas la refaire celle la!! o_O

        merci d'avoir pris un peu de ton temps pour corriger mon etourderie! :-°
        • Partager sur Facebook
        • Partager sur Twitter

        [Qt]probleme de pointeur

        × 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