[QT] Probleme avec QListWidget [Résolu]

Signaler
Messages postés
79
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
1 mars 2011
-
Messages postés
79
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
1 mars 2011
-
Bonjour à tous,

j'ai un probléme d'actualisation de ma QListWidget dans mon programme, en fait cette QList me sert de journal (log) pour les action du programme. Quand je clique sur les bouton  de l'application le journal affiche bien le message que je veux :
  CODE:  List_Journal->addItem("[SYSTEM] Chargement des configurations en cours...");

mais lorsque que le code se trouve dans un thread, le message ne s'affiche pas :
CODE:
DWORD WINAPI Thread_SRV(LPVOID lpParameter)
{

MainWindowImpl* ptr = (MainWindowImpl *) lpParameter;

//Ecrit le text mais actualise pas la liste, pk ??

ptr->List_Journal->addItem("[SERVER] Ouverture du serveur NET");

...

}

le texte ne s'affiche pas dans ma QListWidget, au debut, je me suis dit, que j'avais mal passer l'adresse de fenetre principale, mais par la suite, je me suis rendu compte que le thread ecrivait bien dans la QList, mais qu'elle ne s'actualisait pas (car quand je clique sur un bouton de mon interface, ca affiche le text du thread + celui de l'interface).

Existe t'il une methode pour actualiser une QListWidget ? j'ai essayer avec update(), mais ce ne fonctionne pas ! quelq'un a t'il une idée ?

merci

____________________
Ma Quete n'est pas Terminee

4 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
C'est parce que tes événements ne sont pas gérés dans ton thread. Il faut que  tu créés une boucle d'événement dans ton QThread. QListWidget c'est du QT 4 ?
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Suffit de démarrer la boucle d'événement avec la fonction exec de QThread. Mais je suis pas sur que ca fonctionne bien. A ta place je ferais un événement "message" en asynchrone qui envoit vers le thread principal le message à ajouter et c'est le thread principal qui s'occupe d'appeler " ptr->List_Journal->addItem("[SERVER] Ouverture du serveur NET");".
Messages postés
79
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
1 mars 2011

Oui c'est du QT4, j'ai trouver une methode, en fait j'ai mis un TIMER qui actualiser la WidgetList toute les secondes
mais si vous avez une autre idée, comme mettre en place la gestion de l'évenement dans le thread, je suis prenneur !!

____________________
Ma Quete n'est pas Terminee
Messages postés
79
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
1 mars 2011

Merci, ca marche du tonnere !

____________________
Ma Quete n'est pas Terminee