j'ai une fonction de progress bar pendant la copie de fichiers, mais je ne sais comment le faire défiler suivant l'opération de copie, pourriez vous m'aider svp?dans la photo c'est un défilement statique juste pour tester mon affichage
Version imprimable
j'ai une fonction de progress bar pendant la copie de fichiers, mais je ne sais comment le faire défiler suivant l'opération de copie, pourriez vous m'aider svp?dans la photo c'est un défilement statique juste pour tester mon affichage
Bonjour.
Pour pouvoir faire défiler une barre pendant qu'une autre opération s'effectue il te faut utiliser la boucle principale de Gtk+. Par défaut tu ne peux faire qu'une seule chose à la fois dans la boucle Gtk+.
Pour "contourner" cette contrainte tu peux ajouter dans la boucle Gtk+ une fonction à exécuter toutes les x secondes. Dans cette fonction tu peux alors récupérer par exemple le taux d'avancement des copies (nieme fichier/total fichier) et mettre à jour ta barre de progression.
Pour pouvoir insérer une fonction dans la boucle principale de Gtk+ tu peux utiliser la fonction g_timeout_add(); ou une de ses dérivées.
Tu trouveras plusieurs posts sur ce forums traitant de ce sujet.
Bonne continuation.
je ne pense pas pouvoir utiliser cette fonction car c'est un tp système où il m'est exigé d'utiliser comme fonction de copie non pas le buffer mais l'instruction système:
voyez vous que c'est possible??Code:execl("/bin/cp","cp",path,dest,NULL);
À priori je te dirai non.
Tu ne peux connaître ni la durée, ni le nombre de fichiers transférés. Donc tu peux toujours garder le principe que je t'ai donné mais avec une barre de progression qui va et vient de gauche à droite tant que la fonction système n'est pas finie.