coagul : Python et QT (tutoriel 6)
Créé par Jean-Emmanuel Bissey le 07/11/2025 modifié le 08/11/2025 PubliéRubrique : Programmation
Le : mardi 4 avril 2006
Par : jibux
Visites : 2567
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 :
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