Comment utiliser pyqt qtimer

Comment utiliser pyqt qtimer
La classe QTIMER de la bibliothèque PYQT permet aux utilisateurs de créer une horloge numérique, un compteur de temps, une barre de progression, et plus. Cette classe est utilisée pour créer une minuterie régulière qui envoie un signal lorsque la minuterie tire et qu'il hérite du Qobject classe. L'objet du QTIMER La classe est créée comme un enfant d'un widget. Lorsque le widget supprime, l'objet Timer supprime également. Le QTIMER La classe fournit une fonction statique appelée coup unique() qui peut être utilisé pour appeler une fonction après une période spécifique. Ce tutoriel vous montre comment utiliser le QTIMER classe pour créer des applications PYQT liées au temps.

Utilisation de QTIMER

Les sections suivantes fournissent des exemples qui illustrent comment implémenter deux applications différentes à l'aide de la classe QTIMER.

Exemple 1: Créez un chronomètre

Le script suivant implémentera une application de chronomètre dans Python à l'aide de la classe QTimer. Cette application comptera le nombre de secondes et le nombre de minutes. Deux boutons sont utilisés pour démarrer, arrêter, reprendre et réinitialiser le comptoir. Lorsque l'utilisateur clique sur le Commencer bouton, le compteur commencera à compter et la légende du Commencer Le bouton sera modifié en Arrêt. Lorsque l'utilisateur clique sur le Commencer bouton avec la légende Arrêt, le compteur s'arrêtera temporairement et la légende du Commencer Le bouton sera modifié en CV Pour continuer le comptoir à la prochaine fois. Lorsque l'utilisateur clique sur le Réinitialiser bouton, toutes les valeurs du compteur seront initialisées à 0.

# Importer les modules nécessaires
importer sys
de pyqt5.QtWidgets Import *
de pyqt5.QTCORE IMPORT *
# Définissez la classe pour créer la montre d'arrêt
Class StopwatchWindow (qmainwindow):
def __init __ (soi):
# Appelez le constructeur parent
super().__init __ ()
# Définissez le titre de la fenêtre
soi.setWindowTitle ("stop watch using qtimer")
# Définissez la géométrie de la fenêtre
soi.SetGeométrie (100, 100, 300, 200)
# Définissez les variables nécessaires
soi.compteur = 0
soi.minute = '00'
soi.second = '00'
soi.count = '00'
soi.startwatch = false
# Créer une étiquette pour afficher la montre
soi.étiquette = qlabel (self)
# Définissez la géométrie pour l'étiquette
soi.étiqueter.SetGeométrie (100, 40, 150, 70)
# Créer le bouton Démarrer
soi.start = qpushbutton ("start", self)
# Définir la géométrie sur le bouton Démarrer
soi.commencer.setGeométrie (50, 120, 100, 40)
# Appel start () Méthode lorsque le bouton Démarrer est cliqué
soi.commencer.pressé.se connecter (soi.Commencer)
# Créer le bouton de réinitialisation
resetwatch = qpushbutton ("réinitialiser", self)
# Définir la géométrie sur le bouton d'arrêt
resetwatch.SetGeométrie (160, 120, 100, 40)
Méthode d'appel reset () lorsque le bouton de réinitialisation est cliqué
resetwatch.pressé.se connecter (soi.Réinitialiser)
# Créer un objet Timer
minuterie = qtimer (self)
# Ajouter une méthode avec la minuterie
minuteur.temps libre.se connecter (soi.ShowCounter)
# Appel start () Méthode pour modifier la valeur du temporisateur
minuteur.Démarrer (100)
# Déplacer la position de la fenêtre
soi.Déplacer (900, 400)
# Afficher la fenêtre
soi.montrer()
# Définissez une méthode pour modifier les valeurs des minutes et des secondes en fonction de la valeur de la minuterie
Def ShowCounter (Self):
# Vérifiez la valeur de la variable startwatch pour démarrer ou arrêter la montre d'arrêt
Si vous-même.startwatch:
# Compteur d'incrément par 1
soi.compteur + = 1
# Compter et définir la valeur du compteur de temps
cnt = int ((soi.compteur / 10 - int (self.compteur / 10)) * 10)
soi.count = '0' + str (cnt)
# Définir la deuxième valeur
Si int (soi.compteur / 10) < 10 :
soi.deuxième = '0' + str (int (self.compteur / 10))
autre:
soi.seconde = str (int (self.compteur / 10))
# Définissez la valeur minutieuse
Si vous-même.compteur / 10 == 60.0:
soi.deuxième == '00'
soi.compteur = 0
min = int (self.minute) + 1
Si min < 10 :
soi.minute = '0' + str (min)
autre:
soi.minute = str (min)
# Fusionner les valeurs de la révision, deuxième et comptage
Texte = soi.minute + ':' + self.deuxième + ':' + self.compter
# Affichez les valeurs de la montre stop dans l'étiquette
soi.étiqueter.Définir le texte('

'+ texte +'

')
# Définissez la méthode pour gérer le bouton Démarrer
Def Start (Self):
# Définissez la légende du bouton Démarrer en fonction de la légende précédente
Si vous-même.commencer.text () == 'stop':
soi.commencer.setText («CV»)
soi.startwatch = false
autre:
# Faire startwatch à true
soi.startwatch = true
soi.commencer.setText ('stop')
# Définissez la méthode pour gérer le bouton de réinitialisation
def réinitialiser (soi):
soi.startwatch = false
# Réinitialiser toutes les variables de comptoir
soi.compteur = 0
soi.minute = '00'
soi.second = '00'
soi.count = '00'
# Définissez les valeurs initiales de la montre stop
soi.étiqueter.setText (str (self.comptoir))
# Créer un objet d'application et exécuter l'application
app = qapplication (sys.argv)
stopwt = stopwatchwindow ()
appliquer.exec ()

La fenêtre suivante apparaîtra après l'exécution du script ci-dessus.

Le chronomètre va commencer à fonctionner après que l'utilisateur clique sur le Commencer bouton.

Le compteur cessera de compter après que l'utilisateur a cliqué Arrêt bouton.

Exemple 2: créer une horloge numérique

Le script suivant implémentera une horloge numérique dans Python en utilisant le QTIMER classe. Le script affichera l'horloge numérique dans une étiquette en lisant l'heure du système actuel une fois à chaque seconde.

# Importer les modules nécessaires
importer sys
de pyqt5.Qtwidgets Importer Qapplication, Qwidget, QLabel, QVboxLayout
de pyqt5.Qtcore Import qtimer, qtime, qt
de pyqt5.Qtgui import qfont
# Définissez la classe pour créer l'horloge numérique
Class DigitalClock (Qwidget):
def __init __ (soi):
super().__init __ ()
# Créez une étiquette avec police et alignement
soi.lbltimer = qLabel ()
FONT = QFONT ('TIMES', 50)
soi.lbltimer.Setfont (Font)
soi.lbltimer.setalignment (QT.AlignCenter)
# Créer l'objet de mise en page vartical
v_layout = qvboxlayout ()
v_layout.addWidget (soi.lbltimer)
soi.setLayout (v_layout)
# Créez l'objet Timer et appelez les méthodes nécessaires pour afficher l'horloge
minuterie = qtimer (self)
minuteur.temps libre.se connecter (soi.showclock)
minuteur.Démarrer (1000)
# Définissez le titre de la fenêtre
soi.setWindowTitle ("horloge numérique à l'aide de qtimer")
# Redimensionner la fenêtre
soi.redimensionner (270, 120)
# Déplacer la position de la fenêtre
soi.Déplacer (800, 400)
# Méthode d'appel pour afficher l'heure
soi.showclock ()
# Afficher la fenêtre
soi.montrer()
Def ShowClock (self):
# Lisez l'heure actuelle
Current_time = qtime.heure actuelle()
# Afficher l'horloge numérique
soi.lbltimer.Définir le texte('

'+ Current_time.toString ('hh: mm: ss ap') + '

')
# Créer un objet d'application et exécuter l'application
app = qapplication (sys.argv)
win = digitalclock ()
appliquer.exec ()

La fenêtre de sortie suivante apparaîtra après l'exécution du script ci-dessus.

Conclusion

La valeur de date et d'heure de l'heure actuelle du système peut être lue de différentes manières en utilisant la classe QTimer de la bibliothèque PYQT. La classe QTIMmer a été utilisée dans ce tutoriel pour exécuter divers exemples de scripts liés au temps.