PERL : afficher une barre de progression pendant une commande

Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
j'ai une petite application perl GTK2 en cours de construction, mais je bute sur une action précise.
je souhaite exécuter une commande système, j'utilise la fonction qx.
Néanmoins, je souhaiterais afficher une barre de progression pendant l'exécution de celle-ci.
Voici l'extrait intéressant de l'action du bouton :
Code PERL :
$pbar étant une barre de progression créée auparavant dans ma fenêtre GTK.
La commande se déroule bien.
Mais l'affichage et le masquage de la barre se fait après la commande exécutée.
En gros, il se passe que : Clic sur bouton => fonction action se déroule : je fais sleep 2 secondes => la barre s'affiche => la barre se masque.
Je souhaiterais le comportement suivant : Clic sur bouton => fonction action se déroule : la barre s'affiche => je fais sleep 2 secondes => la barre se masque.
Une idée sur mon problème ?
Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !


thierryR Membre non connecté
-
- Voir le profil du membre thierryR
- Inscrit le : 02/02/2010
- Site internet

débusqueur de bugs et chercheur en améliorations
Amicalement vôtre.
Kernel: 4.4.92-desktop-1.mga5 x86_64 (64 bit) Desktop: KDE 4.14.35 Distro: Mageia 5 thornicroft
Machine: Mobo: ASUSTeK model: X751SA v: 1.0 Bios: American Megatrends v: X751SA.403
CPU: Quad core Intel Pentium N3710 (-MCP-) cache: 1024 KB Graphics: Card: Intel Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller

Kernel: 4.4.92-desktop-1.mga5 x86_64 (64 bit) Desktop: KDE 4.14.35 Distro: Mageia 5 thornicroft
Machine: Mobo: ASUSTeK model: X751SA v: 1.0 Bios: American Megatrends v: X751SA.403
CPU: Quad core Intel Pentium N3710 (-MCP-) cache: 1024 KB Graphics: Card: Intel Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller

Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
J'ai posé ma question. On verra bien : http://www.developpez.net/forums/d1442738/autres-langages/perl/interfaces-graphiques/afficher-barre-progression-pendant-commande/#post7832510
Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !


Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Je n'ai pas de référence en Perl, mais Isodumper, que je connais un peu, en Python met à jour un barre de progression. C'est du GTK 2 donc çà devrait ressembler.
https://github.com/papoteur-mga/isodumper/blob/master/lib/isodumper.py ligne 357
On commence par
Code PYTHON :
while gtk.events_pending(): gtk.main_iteration(True)
A un moment on met la barre de progression à jour
Code PYTHON :
progress.set_fraction(float(indice)/100)
Et on autorise la mise à jour
Code PYTHON :
yield True
Mais çà, c'est quand le programme s'exécute dans le code.
Pour un programme externe, je n'ai jamais mis en oeuvre.
Dans mintstick, il ont utilisé une fonction qui anime la barre de progression, mais sans indication de valeur.
Je te le retrouve ?
Edit : c'est moi qui bogue ou les balises code ?
Yves
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie