Python: progress bar con kde

Ovvero come implementare una simpatica e utile progress bar in Python sfruttando un'installazione funzionante di KDE

Requisiti: Python, KDE

Vi faccio dono di questo pezzo di codice che spesso e volentieri mi e' tornato utile.
Inserendo una progress bar in un programma con un tempo di esecuzione piuttosto elevato, posso ottenere in maniera rapida informazioni quali:
  1. stato di avanzamento del programma;
  2. stima del tempo trascorso;
  3. stima del tempo rimanente.
Il codice allegato sfrutta chiama mediante una l'apertura di una pipe l'utilissimo programma kdialog, parte dell'installazione base di KDE, per lanciare una finestra di dialogo con una progress bar che viene aggiornata e controllata dal codice Python sfruttando dcop.

Un esempio di come utilizzare questo codice e' inserito nella funzione test(), presente anch'essa nel codice e che viene eseguita in seguito al comando:
$ python progress_bar.py

L'immagine mostra la progress bar che dovrebbe apparire sul vostro schermo.


Come riciclare questo codice
La cosa piu' semplice che possiate fare e' copiarlo all'interno del codice che state sviluppando e creare un'istanza dell'oggetto Progressbar che partira' automaticamente, ad esempio cosi':
pbar=Progressbar(title='test title', name='test window', update_time=.1, steps=1000)
Per incrementare la barra e' sufficiente variare il contatore della barra stessa con il valore attuale, ad esempio:
pbar.index=500
Se volete chiudere la finestra di dialogo e' sufficiente cliccare sul tasto "Cancel". Questa azione, inoltre, settera' al valore True la variabile pbar.stop che potra' essere eventualmente usata nel programma principale per decidere di interrompere la sua esecuzione.

Nessun commento: