Qt connect n'appel pas le slot

Fermé
farcry165 - Modifié par farcry165 le 9/12/2011 à 20:48
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 11 déc. 2011 à 14:02
Bonjour, j'ai un problème qui persiste avec mes QObject::connect, le slot n'est jamais appeler.
je voudrais que lorsque l'on clique sur le bouton bcorrection (qui est dans un fichier ui) un message d'information s'affiche, mais quand je clique sur le bouton rien ne ce passe.
j'ai simplifier mon code a l'extrême pour qu'il soit lisible et simple a comprendre.

merci d'avance pour votre aide.


fichier piscine.h:
class piscine : public QWidget 
{ 
    Q_OBJECT 

public slots: 
     int f_correction(QString reponce); 

public: 
     piscine(QWidget *parent = 0); 

private: 
    Ui::piscineui ui; 

};


fichier piscine.cpp:
piscine::piscine(QWidget *parent) : 
    QWidget(parent)//, 
{ 

 Ui::piscineui ui; 
    ui.setupUi(this); 
   QObject::connect(ui.bcorrection, SIGNAL(clicked()),this, SLOT(f_correction())); 


}

int piscine::f_correction(QString reponce)
{
    int note;
   
    QMessageBox::information(this, "note ",QString::number(note));

return note;
}


1 réponse

loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
11 déc. 2011 à 14:02
Il y a effectivement une grosse erreur (étourderie ?) dans ton programme !
Dans le constructeur tu déclares une variable locale dont le nom est 'ui'. Cette variable étant locale, elle sera perdue voire détruite à la fin du constructeur... si bien que la connexion au slot est perdue.
En fait cette déclaration est inutile ... il en existe une de même nom dans la déclaration de la classe.
Bonne continuation.
0