Python affichage heure dynamique en continu
Résolu
Bonjour.
J'utilise le code suivant pour afficher l'heure courante dans une zone
Ma question comment faire pour afficher la date toutes les secondes. c.a.d faire une horloge dynamique ?
J'utilise le code suivant pour afficher l'heure courante dans une zone
Labelnommée
t1avec le module
PyQt5de python.
Ma question comment faire pour afficher la date toutes les secondes. c.a.d faire une horloge dynamique ?
now = datetime.now()
t2 = now.strftime("%H:%M:%S")
win.t1.setText(t2)
A voir également:
- Affichage heure livebox 4
- Just livebox - Accueil - Box & Connexion Internet
- Code gta 4 ps4 - Guide
- Affichage double ecran - Guide
- Changement d'heure - Guide
- Livebox admin - Guide
4 réponses
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
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).
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.
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