C'est normal que ça ne marche pas.
m_nom est détruit à la fin du constructeur, et tu souhaites le réutiliser dans une autre fonction.Il faut que ce soit un attribut.
Dans ton header :
Code:
1 2 3
|
protected:
QLineEdit* m_nom; |
Dans ton fichier cpp :
Code:
1 2 3
|
m_nom = new QLineEdit; |
Si dans ton header tu as tout de même bien déclaré m_nom comme attribut (ce que je pense vu le préfixe m_), le problème vient alors toujours du constructeur.
En gros, voilà dans ce cas ce qui se passe, quand le constructeur est appelé :
- il y a un attribut m_nom, jamais initialisé
- il y a une variable m_nom, initialisé à l'adresse d'un QLineEdit.
Lors de la sortie du constructeur, la variable est détruite, et quand tu appelles ton slot, tu appelles l'attribut non-initialisé.
Le compilateur a 2 variables m_nom dans le constructeur, puisque tu as écris :
Code:
1 2 3
|
QLineEdit* m_nom = new QLineEdit; |
Il comprend donc que tu veux créer une autre variable (la deuxième) dans un bloc (le constructeur) appelée m_nom.
Pour éviter ça, mets juste :
Code:
1 2 3
|
m_nom = new QLineEdit; |
Et il comprendra que tu veux initialiser l'attribut.
J'espère que ce n'est pas trop confus :p