<p class="spip">Dans le <a href="http://www.coagul.org/article.php3?id_article=423" class="spip_out">tutoriel précédent</a>, nous avons fait la connaissance de l’IDE Eric. Nous allons l’utiliser pour créer une petite application qui affichera une barre de progression qui diminuera au rythme d’un timer.</p>

<h3>Éléments abordés dans ce document</h3>
<li> Les timers « avec QTimer(), start(), stop(), isActive() »
<br /><li> Les barres de progression « avec setTotalSteps(), setProgress(), progress() »
<h3>Au travail</h3>
<p class="spip">Maintenant que vous connaissez Eric et QT designer vous devriez pouvoir créer ceci
<span class='spip_document_827 spip_documents spip_documents_center' >
<img src='http://download.tuxfamily.org/assocoagul/drupal-files/spip/timerQT.jpg' width="319" height="108" alt="" /></span><p>

<p class="spip">Liste de commandes à utiliser (pour mémoire)</p>

<p class="spip">Dans eric
<br /></p>
<li> Menu : project / new pour créer un nouveau projet nommé timer
<br /><li> Dans l’onglet QT designer : clic droit / New form ... puis dialog pour créer une nouvelle boite de dialogue nommée timer
<p class="spip">Dans QT Designer
<br /></p>
<li> Placer une ProgressBar au milieu de la boite de dialogue
<br /><li> Enregistrer
<p class="spip">Dans eric
<br /></p>
<li> Clic droit sur timer.ui dans l’onglet Forms : Compile form
<br /><li> Clic droit sur timer.ui dans l’onglet Forms : Generate subclass nommée Form_Impl
<br /><li> Enregistrer le fichier en le nommant mytimer.py
<br /><li> Clic droit dans l’onglet Sources : Add source file ... mytimer.py
<br /><li> Menu : project / propriétés, choisir mytimer.py comme script principal.
<br /><li> Ajouter modifier le code mytimer.py comme suit :
<div style='text-align: left;' class='spip_code' dir='ltr'><code><br />
#!/usr/bin/env python<br />
# -*- coding: utf-8 -*-<br />
<br />
import sys<br />
from qt import *<br />
from timer import Form<br />
<br />
class Form_Impl(Form):<br />
    def __init__(self,parent = None,name = None,modal = 0,fl = 0):<br />
        Form.__init__(self,parent,name,modal,fl)<br />
        <br />
        self.progressBar1.setTotalSteps(10)<br />
        self.progressBar1.setProgress(10)<br />
        <br />
        self.timer=QTimer(self)<br />
        self.connect(self.timer, SIGNAL('timeout()'), self.timerTimeOutSlot)<br />
        self.timer.start(1000)<br />
<br />
    def timerTimeOutSlot(self):<br />
        p=self.progressBar1.progress()<br />
        if p>0:<br />
            self.progressBar1.setProgress(p-1)<br />
        else:<br />
            if self.timer.isActive():<br />
                self.timer.stop()<br />
<br />
app = QApplication(sys.argv)<br />
QObject.connect(app,SIGNAL("lastWindowClosed()"),app,SLOT("quit()"))<br />
form = Form_Impl()<br />
form.show()<br />
app.exec_loop()<br />
<br />
</code></div>
<p class="spip">Il ne reste plus qu’à lancer le script avec F2 pour obtenir :
<span class='spip_document_826 spip_documents spip_documents_center' >
<img src='http://download.tuxfamily.org/assocoagul/drupal-files/spip/timer.jpg' width="301" height="97" alt="" /></span><p>

<p class="spip"><a href="http://www.coagul.org/article.php3?id_article=435" class="spip_out">Pour la suite, c’est ici</a></p>

<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.1</td><td>03/04/2006</td><td>Création par Jibux</td></tr>
<tr class="row_odd"><td>0.2</td><td>14/04/2006</td><td>Ajout traitement du signal lastWindowClosed()</td></tr>
<tr class="row_even"><td>0.3</td><td>26/11/2006</td><td>Ajout d’un lien vers l’article suivant</td></tr>
</tbody>
</table>
<dl class='spip_document_837 spip_documents spip_documents_left'  style='float:left;width:120px;'>
<dt><a href="http://download.tuxfamily.org/assocoagul/drupal-files/spip/Archive.zip" title='Zip - 1.6 ko' type="application/zip"><img src='dist/vignettes/zip.png' width='52' height='52' alt='Zip - 1.6 ko' /></a><dt>
<dt class='spip_doc_titre' style='width:120px;'><strong>Les fichiers sources de cette application</strong></dt>
</dl>