Lo scopo del codice è quello di realizzare un orologio analogico in Python, usando le librerie di PyQt6.
Iniziamo dal semplice schema realizzato con QT Designer, in cui c’è solo una QLabel (label_clock
) che occupa l’intero QWidget. Su tale label stamperemo, ogni secondo, l’orario. Salviamo lo schema (clock.ui
) e procediamo ad editare il codice di controllo.
La struttura iniziale del file è la seguente:
#!/usr/bin/python
from PyQt6.QtWidgets import QApplication, QWidget
from PyQt6 import uic
from PyQt6.QtCore import QTimer, QTime, Qt
import sys
class AppClock(QWidget):
def __init__(self):
super().__init__()
uic.loadUi('clock.ui', self)
self.setFixedSize(540, 164)
app = QApplication(sys.argv)
window = AppClock()
window.show()
app.exec()
Iniziamo a popolare il codice scrivendo il metodo della classe AppClock
che stamperà nella label_clock
l’orario corrente:
def displayTime(self):
currentTime = QTime.currentTime()
displayText = currentTime.toString('hh:mm:ss')
self.label_clock.setText(displayText) #
- memorizziamo l’orario corrente in
currentTime
; - scegliamo il formato da visualizzare e memorizziamolo in
displayText
; - stampiamo la variabile
displayText
nellalabel_clock
.
Costruiamo, ora, l’oggetto timer
che si occuperà di richiamare la funzione currentTime
ogni secondo:
# timer is a instance of QTimer
timer = QTimer(self)
timer.timeout.connect(self.displayTime)
timer.start(1000) #1 second
Il progetto completo può essere scaricato da qui.