Come usare pyqt qtimer

Come usare pyqt qtimer
La classe QTIMER della libreria PYQT consente agli utenti di creare un orologio digitale, un contatore del tempo, una barra di avanzamento e altro ancora. Questa classe viene utilizzata per creare un timer normale che invia un segnale quando il timer spara e eredita dallo Qobject classe. L'oggetto del Qtimer La classe è creata come figlio di un widget. Quando il widget elimina, l'oggetto timer elimina anche. IL Qtimer La classe fornisce una funzione statica chiamata colpo singolo() che può essere usato per chiamare una funzione dopo un periodo specifico. Questo tutorial ti mostra come usare il Qtimer Classe per creare applicazioni PYQT legate al tempo.

Utilizzo di Qtimer

Le seguenti sezioni forniscono esempi che illustrano come implementare due diverse applicazioni utilizzando la classe Qtimer.

Esempio 1: crea un cronometro

Il seguente script implementerà un'applicazione StopWatch in Python usando la classe Qtimer. Questa applicazione conta il numero di secondi e il numero di minuti. Vengono utilizzati due pulsanti per iniziare, fermare, riprendere e ripristinare il contatore. Quando l'utente fa clic su Inizio pulsante, il contatore inizierà il conteggio e la didascalia del Inizio Il pulsante verrà modificato a Fermare. Quando l'utente fa clic su Inizio pulsante con la didascalia Fermare, Il contatore si fermerà temporaneamente e la didascalia del Inizio Il pulsante verrà modificato a Riprendere Per continuare il contrario alla prossima volta. Quando l'utente fa clic su Ripristina pulsante, tutti i valori del contatore saranno inizializzati su 0.

# Importa i moduli necessari
Import sys
da pyqt5.Qtwidgets Import *
da pyqt5.Qtcore Import *
# Definisci la classe per creare l'orologio stop
Classe StopWatchWindow (Qmainwindow):
def __init __ (self):
# Chiama il costruttore genitore
super().__dentro__()
# Imposta il titolo della finestra
se stesso.setWindowTitle ("Stop Watch usando Qtimer")
# Imposta la geometria per la finestra
se stesso.Setgeometry (100, 100, 300, 200)
# Imposta le variabili necessarie
se stesso.contatore = 0
se stesso.minuto = '00'
se stesso.secondo = '00'
se stesso.count = '00'
se stesso.startWatch = false
# Crea l'etichetta per visualizzare l'orologio
se stesso.etichetta = qlabel (self)
# Imposta la geometria per l'etichetta
se stesso.etichetta.Setgeometry (100, 40, 150, 70)
# Crea pulsante Start
se stesso.start = qpushbutton ("start", self)
# Imposta la geometria sul pulsante Start
se stesso.inizio.Setgeometry (50, 120, 100, 40)
# Metodo Chiama Start () quando si fa clic sul pulsante Start
se stesso.inizio.premuto.Connetti (Self.Inizio)
# Crea il pulsante di ripristino
resetWatch = qpushbutton ("reset", self)
# Imposta la geometria sul pulsante STOP
resetwatch.Setgeometry (160, 120, 100, 40)
# Metodo di ripristino () Chiama quando si fa clic sul pulsante di ripristino
resetwatch.premuto.Connetti (Self.Ripristina)
# Crea oggetto timer
timer = qtimer (self)
# Aggiungi un metodo con il timer
Timer.tempo scaduto.Connetti (Self.showcounter)
# Chiama Metodo () Metodo per modificare il valore del timer
Timer.Inizia (100)
# Sposta la posizione della finestra
se stesso.Sposta (900, 400)
# Visualizza la finestra
se stesso.spettacolo()
# Definire un metodo per modificare i valori di minuti e secondi in base al valore del timer
def showcounter (self):
# Controlla il valore della variabile StartWatch per avviare o arrestare l'orologio
se sé.startwatch:
# Contatore incremento di 1
se stesso.contatore += 1
# Conta e imposta il valore del contatore del tempo
cnt = int ((self.contatore/10 - int (self.contatore/10))*10)
se stesso.COUNT = '0' + STR (CNT)
# Imposta il secondo valore
Se int (self.contatore/10) < 10 :
se stesso.Second = '0' + STR (int (self.contatore / 10))
altro:
se stesso.Second = STR (int (self.contatore / 10))
# Imposta il valore minuto
se sé.contatore / 10 == 60.0:
se stesso.secondo == '00'
se stesso.contatore = 0
min = int (self.minuto) + 1
Se min < 10 :
se stesso.minuto = '0' + str (min)
altro:
se stesso.minuto = str (min)
# Unisci i valori di minue, secondo e conta
text = self.minuto + ':' + self.secondo + ':' + self.contare
# Visualizza i valori di stop orologio nell'etichetta
se stesso.etichetta.setText ('

' + testo +'

')
# Definisci metodo per gestire il pulsante di avvio
def start (self):
# Impostare la didascalia del pulsante Start in base alla didascalia precedente
se sé.inizio.text () == 'stop':
se stesso.inizio.setText ('riprendere')
se stesso.startWatch = false
altro:
# Rendere startwatch a True
se stesso.startWatch = true
se stesso.inizio.setText ('stop')
# Definisci metodo per gestire il pulsante di ripristino
def reset (self):
se stesso.startWatch = false
# Ripristina tutte le variabili di contatore
se stesso.contatore = 0
se stesso.minuto = '00'
se stesso.secondo = '00'
se stesso.count = '00'
# Imposta i valori iniziali per l'orologio Stop
se stesso.etichetta.setText (STR (self.contatore))
# Crea oggetto app ed esegui l'app
app = Qapplication (sys.argv)
stopwt = stopWatchWindow ()
app.Exec ()

Verrà visualizzata la seguente finestra dopo l'esecuzione dello script sopra.

StopWatch inizierà a funzionare dopo che l'utente fa clic sul Inizio pulsante.

Il contatore smetterà di contattare dopo che l'utente fa clic sul Fermare pulsante.

Esempio 2: crea un orologio digitale

Il seguente script implementerà un orologio digitale in Python usando il Qtimer classe. Lo script visualizzerà l'orologio digitale in un'etichetta leggendo il tempo di sistema corrente una volta ogni secondo.

# Importa i moduli necessari
Import sys
da pyqt5.QtWidgets Import Qapplication, Qwidget, QLabel, QvBoxLayout
da pyqt5.Qtcore Import Qtimer, Qtime, Qt
da pyqt5.QTGUI Importa QFont
# Definisci la classe per creare l'orologio digitale
Classe DigitalClock (Qwidget):
def __init __ (self):
super().__dentro__()
# Crea un'etichetta con carattere e allineamento
se stesso.lbltimer = qlabel ()
FONT = QFONT ('Times', 50)
se stesso.lbltimer.SetFont (carattere)
se stesso.lbltimer.SetaLignment (Qt.Allinea al centro)
# Crea l'oggetto layout vartico
v_layout = qvBoxLayout ()
v_layout.AddWidget (sé.lbltimer)
se stesso.setLayout (v_layout)
# Crea l'oggetto timer e chiama i metodi necessari per visualizzare l'orologio
timer = qtimer (self)
Timer.tempo scaduto.Connetti (Self.showclock)
Timer.Avvia (1000)
# Imposta il titolo della finestra
se stesso.setWindowTitle ("Digital Clock usando Qtimer")
# Ridimensiona la finestra
se stesso.RISIZE (270, 120)
# Sposta la posizione della finestra
se stesso.Sposta (800, 400)
# Chiama metodo per visualizzare l'orario
se stesso.showclock ()
# Visualizza la finestra
se stesso.spettacolo()
def showclock (self):
# Leggi l'ora corrente
Current_time = qtime.ora attuale()
# Visualizza l'orologio digitale
se stesso.lbltimer.setText ('

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

')
# Crea oggetto app ed esegui l'app
app = Qapplication (sys.argv)
Win = DigitalClock ()
app.Exec ()

Verrà visualizzata la seguente finestra di output dopo l'esecuzione dello script sopra.

Conclusione

La data e il valore di tempo dell'ora del sistema corrente possono essere letti in vari modi utilizzando la classe Qtimer della libreria PYQT. La classe Qtimer è stata utilizzata in questo tutorial per eseguire vari script relativi al tempo di esempio.