Skip to Content

Python et QT (tutoriel 6)

Dans le tutoriel précédent, 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.

Éléments abordés dans ce document

  •  Les timers « avec QTimer(), start(), stop(), isActive() »
  •  Les barres de progression « avec setTotalSteps(), setProgress(), progress() »

    Au travail

    Maintenant que vous connaissez Eric et QT designer vous devriez pouvoir créer ceci


    Liste de commandes à utiliser (pour mémoire)

    Dans eric

  •  Menu : project / new pour créer un nouveau projet nommé timer
  •  Dans l’onglet QT designer : clic droit / New form ... puis dialog pour créer une nouvelle boite de dialogue nommée timer

    Dans QT Designer

  •  Placer une ProgressBar au milieu de la boite de dialogue
  •  Enregistrer

    Dans eric

  •  Clic droit sur timer.ui dans l’onglet Forms : Compile form
  •  Clic droit sur timer.ui dans l’onglet Forms : Generate subclass nommée Form_Impl
  •  Enregistrer le fichier en le nommant mytimer.py
  •  Clic droit dans l’onglet Sources : Add source file ... mytimer.py
  •  Menu : project / propriétés, choisir mytimer.py comme script principal.
  •  Ajouter modifier le code mytimer.py comme suit :

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    import sys
    from qt import *
    from timer import Form

    class Form_Impl(Form):
       def __init__(self,parent = None,name = None,modal = 0,fl = 0):
           Form.__init__(self,parent,name,modal,fl)
           
           self.progressBar1.setTotalSteps(10)
           self.progressBar1.setProgress(10)
           
           self.timer=QTimer(self)
           self.connect(self.timer, SIGNAL('timeout()'), self.timerTimeOutSlot)
           self.timer.start(1000)

       def timerTimeOutSlot(self):
           p=self.progressBar1.progress()
           if p>0:
               self.progressBar1.setProgress(p-1)
           else:
               if self.timer.isActive():
                   self.timer.stop()

    app = QApplication(sys.argv)
    QObject.connect(app,SIGNAL("lastWindowClosed()"),app,SLOT("quit()"))
    form = Form_Impl()
    form.show()
    app.exec_loop()

    Il ne reste plus qu’à lancer le script avec F2 pour obtenir :


    Pour la suite, c’est ici

    Historique des modifications

    Version Date Commentaire
    0.1 03/04/2006 Création par Jibux
    0.2 14/04/2006 Ajout traitement du signal lastWindowClosed()
    0.3 26/11/2006 Ajout d’un lien vers l’article suivant
    Zip - 1.6 ko
    Les fichiers sources de cette application
  • Fichier attachéTaille
    timer.jpg5.42 Ko
    timerQT.jpg8.29 Ko
    Les fichiers sources de cette application1.69 Ko

    Commentaires

    > Python et QT (tutoriel 6)

    Merci pour ta relecture.

    > Python et QT (tutoriel 6)

    Salut Tony,

    J’ai corrigé le lien sur cet article et ajouté le lien dans le tutoriel 3.

    Et je retiens ton idée de faire un article qui fasse un résumé des différents turoriels.

    Merci pour tes remarques

    > Python et QT (tutoriel 6)

    Bonjour Jibux,

    Il y a un problème avec le lien vers l’article précédent.

    Dans le tutoriel 3, il n’y a pas de lien vers le tutoriel 2.

    Je pense qu’il serait bien de faire un article faisant le sommaire de tes différents tutoriels, non ?

    Merci pour ce nouvel article.

    > Python et QT (tutoriel 6)

    RAS