Python affichage heure dynamique en continu
Résolu/Fermé
HAJRI64
Messages postés
6
Date d'inscription
vendredi 22 janvier 2016
Statut
Membre
Dernière intervention
16 janvier 2022
-
Modifié le 17 janv. 2022 à 14:36
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 - 17 janv. 2022 à 14:40
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 - 17 janv. 2022 à 14:40
A voir également:
- Python qtimer
- Citizen code python - Guide
- Geometry dash python ✓ - Forum Python
- Lancer script python linux - Forum Ubuntu
- Compris entre python ✓ - Forum Python
- Ce programme est écrit en python ✓ - Forum Python
4 réponses
mamiemando
Messages postés
33093
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
4 mai 2024
7 752
Modifié le 17 janv. 2022 à 14:44
Modifié le 17 janv. 2022 à 14:44
Bonjour,
Une petite recherche google t'amène par exemple à cette page, qui répond exactement à ton problème.
Contrairement à ce qui a été dit plus haut, faire une boucle n'est pas la bonne manière de procéder, car tous les modules permettant d'afficher une interface graphique (que ce soit PyQt, GTK, ou Tk) utilisent une boucle principale pour exécuter le programme. En terme d'implémentation, cela veut dire que tout ton programme réagit à des événements (par exemple, un clic de souris, une saisie clavier, ou en l'occurrence, un pas de temps), et que le programme principale ne fait que lancer la fenêtre.
Si l'on détaille maintenant le programme ci-dessus :
Bonne chance
Une petite recherche google t'amène par exemple à cette page, qui répond exactement à ton problème.
# importing required librarie import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtWidgets import QVBoxLayout, QLabel from PyQt5.QtGui import QFont from PyQt5.QtCore import QTimer, QTime, Qt class Window(QWidget): def __init__(self): super().__init__() # setting geometry of main window self.setGeometry(100, 100, 800, 400) # creating a vertical layout layout = QVBoxLayout() # creating font object font = QFont('Arial', 120, QFont.Bold) # creating a label object self.label = QLabel() # setting centre alignment to the label self.label.setAlignment(Qt.AlignCenter) # setting font to the label self.label.setFont(font) # adding label to the layout layout.addWidget(self.label) # setting the layout to main window self.setLayout(layout) # creating a timer object timer = QTimer(self) # adding action to timer timer.timeout.connect(self.showTime) # update the timer every second timer.start(1000) # method called by timer def showTime(self): # getting current time current_time = QTime.currentTime() # converting QTime object to string label_time = current_time.toString('hh:mm:ss') # showing it to the label self.label.setText(label_time) # create pyqt5 app App = QApplication(sys.argv) # create the instance of our Window window = Window() # showing all the widgets window.show() # start the app App.exit(App.exec_())
Contrairement à ce qui a été dit plus haut, faire une boucle n'est pas la bonne manière de procéder, car tous les modules permettant d'afficher une interface graphique (que ce soit PyQt, GTK, ou Tk) utilisent une boucle principale pour exécuter le programme. En terme d'implémentation, cela veut dire que tout ton programme réagit à des événements (par exemple, un clic de souris, une saisie clavier, ou en l'occurrence, un pas de temps), et que le programme principale ne fait que lancer la fenêtre.
Si l'on détaille maintenant le programme ci-dessus :
-
timer
permet de lever un événement toutes les secondes ; celui-ci déclenche grâce àconnect
la méthodeshowTime
; - la méthode
showTime
corrige l'affichage ; - le programme principale ne faut que créer et lance l'application.
Bonne chance
yg_be
Messages postés
22779
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 mai 2024
1 481
15 janv. 2022 à 14:29
15 janv. 2022 à 14:29
bonjour,
tu ne montres qu'une partie de ton code.
Merci d'utiliser les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
je suggère de faire une boucle, dans laquelle tu mets également un pause de une seconde (ou moins, suivant la précision requise).
tu ne montres qu'une partie de ton code.
Merci d'utiliser les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
je suggère de faire une boucle, dans laquelle tu mets également un pause de une seconde (ou moins, suivant la précision requise).
HAJRI64
Messages postés
6
Date d'inscription
vendredi 22 janvier 2016
Statut
Membre
Dernière intervention
16 janvier 2022
Modifié le 17 janv. 2022 à 14:36
Modifié le 17 janv. 2022 à 14:36
Merci pour la réponse. voila mon code:
je veux savoir comment faire une boucle avec pause.
from datetime import datetime from PyQt5.uic import loadUi from PyQt5.QtWidgets import QApplication app=QApplication([]) win=loadUi('arith.ui') win.show() now = datetime.now() t2 = now.strftime("%H:%M:%S") win.t1.setText(t2) app.exec_()
je veux savoir comment faire une boucle avec pause.
yg_be
Messages postés
22779
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 mai 2024
1 481
>
HAJRI64
Messages postés
6
Date d'inscription
vendredi 22 janvier 2016
Statut
Membre
Dernière intervention
16 janvier 2022
15 janv. 2022 à 16:41
15 janv. 2022 à 16:41
un exemple de boucle avec pause:
import time while True: time.sleep(1) print("bonjour")
HAJRI64
Messages postés
6
Date d'inscription
vendredi 22 janvier 2016
Statut
Membre
Dernière intervention
16 janvier 2022
15 janv. 2022 à 18:02
15 janv. 2022 à 18:02
j'ai essayé ça, mais ça na pas marché avec l'interface graphique PyQt5
yg_be
Messages postés
22779
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 mai 2024
1 481
15 janv. 2022 à 18:33
15 janv. 2022 à 18:33
comment as-tu fait?
yg_be
Messages postés
22779
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 mai 2024
1 481
15 janv. 2022 à 18:36
15 janv. 2022 à 18:36
peux-tu partager le fichier ui? cela me permettrait de tester.
HAJRI64
Messages postés
6
Date d'inscription
vendredi 22 janvier 2016
Statut
Membre
Dernière intervention
16 janvier 2022
Modifié le 17 janv. 2022 à 14:37
Modifié le 17 janv. 2022 à 14:37
from datetime import datetime import time from PyQt5.uic import loadUi from PyQt5.QtWidgets import QApplication app=QApplication([]) win=loadUi('time.ui') win.show() now = datetime.now() t2 = now.strftime("%H:%M:%S") win.t1.setText(t2)
Remarque :
t1est la zone d'affichage de l'heure. c'est une zone
Label
yg_be
Messages postés
22779
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 mai 2024
1 481
16 janv. 2022 à 19:39
16 janv. 2022 à 19:39
je ne vois pas de boucle dans le code partagé.
peux-tu utiliser les balises de code, comme expliqué en #1?
peux-tu partager le fichier time.ui? cela me permettrait de tester.
peux-tu utiliser les balises de code, comme expliqué en #1?
peux-tu partager le fichier time.ui? cela me permettrait de tester.