[QT] Probleme avec QListWidget

Résolu
Ilsundal Messages postés 79 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 1 mars 2011 - 2 févr. 2008 à 10:16
Ilsundal Messages postés 79 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 1 mars 2011 - 7 févr. 2008 à 16:14
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

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
3 févr. 2008 à 20:33
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 ?
3
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
4 févr. 2008 à 20:56
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");".
3
Ilsundal Messages postés 79 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 1 mars 2011
4 févr. 2008 à 08:14
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
0
Ilsundal Messages postés 79 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 1 mars 2011
7 févr. 2008 à 16:14
Merci, ca marche du tonnere !

____________________
Ma Quete n'est pas Terminee
0
Rejoignez-nous