Bonjour à tous,
Voila mon soucis, j'ai une fenêtre A qui appel une fenêtre B jusque la pas de soucis, la fenêtre B permet le réglage de la fenêtre A, seulement quand j'appelle la méthode public de ma fenêtre A censé initialiser un argument de celle ci(fenêtre A), le transfert de donné ce déroule sans problèmes, j'arrive bien a récupérer la valeur retournée, j'initialise alors mon argument avec, il prend bien la valeur(quand je fais un test c'est la bonne valeur qui s'affiche), mais dès que je sort de ma méthode, plus rien la bonne valeur a disparue(elle remplacé par la valeur présente a l'adresse mémoire de la variable...)
voici mon code :
Appel de la methode de la fenetre A dans un slot de la fenetre B :
Implémentation de la methode de la fenetre A :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 fenetre_A().recuperer(1);
si je place un QMessageBox au sein de ma méthode du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int fenetre_A::recuperer(int retour) { return this->retour_typeAlerte = retour; }
les message d'alerte me retourne bien les bonnes valeurs, par contre si dans une autre methode de ma fenetre A je fais un test la valeur est erronée... :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 int fenetre_A::recuperer(int retour) { QMessageBox::warning(this,"test 1",QString::number(retour)); this->retour_typeAlerte = retour; QMessageBox::warning(this,"test 2","nombre : " + QString::number(retour_typeAlerte)); return this->retour_typeAlerte = retour; }
J'ai un peu de mal a saisir surtout que je fais de même pour un autre argument de la fenêtre A avec une autre méthode de la fenetre A appelé celle ci au sein de la fenêtre A et la valeur de ce second argument reste ok même au sein d'une autre méthode, preuve que l'initialisation c'est bien déroulé...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void fenetre_A::tester() { QMessageBox::warning(this,"test",QString::number(retour_typeAlerte)); }
Cela viendrait il du fait que j'initialise depuis une autre fenêtre en l'occurrence la fenetre B...j'espère avoir été clair dans mes explications.
Si quelqu'un a une idée ou une piste je suis preneur !!!
Merci d'avance.
Partager