Bonjours !

Voici une description du problème que je rencontre, dans mon apprentissage long et délicat de Qt :

j'ai fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
private :
QString *tableau = NULL;
dans mon fichier .h de ma classe.
j'ai modifié ce tableau dans un slot, en faisant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
tableau = new QString[nombre];
(nombre a auparavant été définis dans le même slots)

Ensuite je rempli mon tableau, et tout va très bien.

Sauf que, lorsque je fait, dans un autre slot, une fois le tableau rempli (c'est obligatoire, car le second ne peut pas être appelé tant que le premier ne l'a pas été (le bouton est désactivé)) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
QString chaine;
chaine = "un mot "+ tableau[0]
le compilateur m'insulte et me dit :
invalids operands of types 'const char[8]' and 'QString*' to binary 'operator+'

Pourtant, selon ce que je pensait savoir des tableaux, une "case" de mon tableau doit contenir un objet en tout point semblable à une QString ...
Et donc que je suis censé pouvoir l'ajouter à une autre chaine, l'afficher, ...

Mais le pire, c'est que je peux l'afficher, mais uniquement dans mon slot ou je l'ai rempli. Donc, dans le troisième slot, là ou le bug se trouve, il refuse d'afficher mon tableau[0] et me dit :
no matching function for call 'QMessageBox::information(MainWindow* const, const char[8], QString*&)

Donc il y a une grosse différence entre QString et une QString dans un tableau. La question est, pourquoi il l'affiche dans mon premier slot, et pas dans mon second ... car la ligne de code est la même, et le tableau a pas changé entre temps ...

Voila où j'en suis dans ma réflexion. J'aurais aimer savoir qu'est-ce qui se passe, pourquoi, et comment faire pour résoudre ce problème.

Merci d'avance ^^