Biensur...
Dans le but de tester mon code dans tous les sens je test souvent mes valeurs via l'interface et QMessageBox
Si vous avez bien vu dans ma fonction j'utilise des QMessageBox et il me rend bien la valeur correcte de pseudo lorsque je fais :
1 2 3 4 5 6 7 8 9 10
| void Construct_GAME_View::InitLobby(QString pseudo)
{
QDialog dialog;
label66->setUpdatesEnabled(true);
label66->setTextInteractionFlags(Qt::TextEditable);
label66->setText(pseudo); /// si pseudo vaut : "Paul"
label66->update();
QString str = label66->text();
QMessageBox::information(&dialog, "information", str); /// QMessage affiche "Paul"
} |
Le probléme est que mon interface ne change pas mon QLabel de valeur.
Je précise que cette fonction est appelée depuis l'extérieure dans l'exécution d'un slot
De plus j'utilise également une autre fonction appelée depuis l'intérieure comme ceci :
connect(tableGView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(updateInfoGame(const QModelIndex &)));
et qui lui par contre me rend bien une valeur correcte lorsque je fais label66->setText("Bonjour");
De plus il change la valeur dans mon interface également. ok!
Mais!!! au départ j'essaye de récupérer la valeur actuelle de label66 car normalement il dois contenir
mon texte qui vaut " Paul " car j'éxecute la fonction InitLobby(QString pseud) avant celle ci:
1 2 3 4 5 6 7 8 9 10 11 12 13
| void Construct_GAME_View::updateInfoGame(...)
{
QDialog dialog;
QString str = label66->text(); /// affiche " ////MON PSEUDO////" au lieu de "Paul"
QMessageBox::information(&dialog, "",str); /// idem
label66->setText("Bonjour"); /// affiche bien "Bonjour" dans mon interface
str = label66->text();
QMessageBox::information(&dialog, "",str); /// idem
.....
} |
Au lieu de cela il contient mon texte défini dans la définition de mon QLabel comme ceci: :
1 2 3
| .....
label66 = new QLabel("////MON PSEUDO////", QWidget*h);
..... |
En gros c'est comme ci mon label66 appelé depuis une fonction exécuter dans un slot à l'extérieure na rien à voir avec celui appelé à l'intérieure . Je comprend plus, je tourne en rond ,j'ai tous essayer sauf la bonne solution!!!
Je précise également que je n'utilise pas de fonction connect pour effectuer mon slot void Construct_GAME_View::InitLobby(QString pseud), je l'appelle simplement depuis l'extérieure dans un autre slot
C'est peut être la mon probléme mais alors comment l'écrire au niveau du signal car je n'ai pas d'objet ???
bon voila , j'espére que c'est clair.
le probléme est que mon projet prend deviens "gros"
Partager