Ilsundal
Messages postés79Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention 1 mars 2011
-
2 févr. 2008 à 10:16
Ilsundal
Messages postés79Date d'inscriptionlundi 23 décembre 2002StatutMembreDerniè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)
{
//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 ?
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 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 ?
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 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");".
Ilsundal
Messages postés79Date d'inscriptionlundi 23 décembre 2002StatutMembreDerniè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 !!