les développeurs,
Je vous explique mon problème :
En fait, je développe une petite appli qui permet, entre autre, de pinger les PC d'un réseau et d'en faire apparaître la liste.
Seulement pendant que je ping j'aimerais mettre une image de fond sur laquelle il y a marqué : "Veuillez patienter pendant l'opération...." et mon souci est là : en fait dans mon code, je supprime l'image d'accueil (ou la liste de PC s'il y en avait déjà une) que je remplace par la nouvelle image d'attente, ensuite j'effectue le ping, je supprime l'image d'attente que je remplace par la liste de PC. Le problème est que pendant le ping (et la construction de la liste) l'image ne s'affiche pas et l'écran est totalement vide, en fait elle s'affiche juste après le ping et disparaît immédiatement pour laisser place à la nouvelle liste donc pendant quelques secondes on a l'impression que le programme a planté (l'écran est vide et l'interface graphique du programme ne répond plus) alors que non.
Voici mon code en simplifier :
L'impression que j'ai c'est que les opérations qui se déroule juste apres la mise a jour de l'image empèchent cette mise a jour de se faire correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 void afficheListe(GtkWidget* widget, gpointer data){ if(image!=NULL){ //si il y a deja une image gtk_container_remove(GTK_CONTAINER(hbox), image); image = gtk_image_new_from_file("attente.jpg"); gtk_box_pack_start(GTK_BOX(hbox), image, TRUE, TRUE, 5); } if(pSb != NULL){//si il y a deja une liste gtk_container_remove(GTK_CONTAINER(hbox), pSb); image = gtk_image_new_from_file("attente.jpg"); gtk_box_pack_start(GTK_BOX(hbox), image, TRUE, TRUE, 5); } gtk_widget_show_all(window); /******************************************/ /*Code de Ping et construction de la liste*/ /******************************************/ if(image!=NULL){ //ici on supprime l'image d'attente avant d'afficher la liste des pc gtk_container_remove(GTK_CONTAINER(hbox), image); image = NULL; } /******************************************/ /*Code de l'ajout de la liste a la fenetre*/ /******************************************/ gtk_widget_show_all(window); }
Je ne vois vraiment pas comment résoudre le souci, j'ai tourné la problème dans tous les sens sans trouver....![]()
d'avance pour votre aide
Partager