QTimer-brug
De følgende afsnit giver eksempler, der illustrerer, hvordan man implementerer to forskellige applikationer ved hjælp af QTimer-klassen.
Eksempel 1: Opret et stopur
Det følgende script implementerer et stopur-program i Python ved hjælp af QTimer-klassen. Denne applikation tæller antallet af sekunder og antallet af minutter. To knapper bruges til at starte, stoppe, genoptage og nulstille tælleren. Når brugeren klikker på Start knappen, tælleren begynder at tælle, og billedteksten på Start knappen ændres til Hold op. Når brugeren klikker på Start knap med billedteksten Hold op, tælleren stopper midlertidigt, og billedteksten på Start knappen ændres til Genoptag for at fortsætte tælleren til næste gang. Når brugeren klikker på Nulstil -knappen initialiseres alle tællerens værdier til 0.
# Importer nødvendige modulerimporter sys
fra PyQt5.Import af QtWidgets *
fra PyQt5.QtCore-import *
# Definer klasse for at oprette stopuret
klasse StopWatchWindow (QMainWindow):
def __init __ (selv):
# Ring til forældrekonstruktøren
super().__i det__()
# Indstil titlen på vinduet
selv.setWindowTitle ("Stop ur med QTimer")
# Indstil geometrien til vinduet
selv.setGeometry (100, 100, 300, 200)
# Indstil de nødvendige variabler
selv.tæller = 0
selv.minut = '00'
selv.sekund = '00'
selv.count = '00'
selv.startWatch = Falsk
# Opret etiket for at få vist uret
selv.label = QLabel (selv)
# Indstil geometri til etiketten
selv.etiket.setGeometry (100, 40, 150, 70)
# Opret startknap
selv.start = QPushButton ("Start", selv)
# Indstil geometri til startknappen
selv.Start.setGeometry (50, 120, 100, 40)
# Opkaldsstart () -metode, når der klikkes på startknappen
selv.Start.trykkes.forbinde (selv.Start)
# Opret reset-knap
resetWatch = QPushButton ("Nulstil", selv)
# Indstil geometri til stopknappen
resetWatch.setGeometry (160, 120, 100, 40)
# Opkaldsnulstillingsmetode (), når der klikkes på nulstillingsknappen
resetWatch.trykkes.forbinde (selv.Nulstil)
# Opret timer-objekt
timer = QTimer (selv)
# Tilføj en metode med timeren
timer.tiden er gået.forbinde (selv.showCounter)
# Opkaldsstart () -metode for at ændre timerværdien
timer.start (100)
# Flyt vinduespositionen
selv.flytte (900, 400)
# Vis vinduet
selv.at vise()
# Definer en metode til at ændre værdierne på minutter og sekunder baseret på timerværdien
def showCounter (selv):
# Kontroller værdien af startWatch-variablen for at starte eller stoppe Stop Watch
hvis selv.startWatch:
# Forøg tæller med 1
selv.tæller + = 1
# Tæl og indstil værdi for tidstæller
cnt = int ((selv.tæller / 10 - int (selv.tæller / 10)) * 10)
selv.count = '0' + str (cnt)
# Indstil den anden værdi
hvis int (selv.tæller / 10) < 10 :
selv.sekund = '0' + str (int (selv.tæller / 10))
andet:
selv.sekund = str (int (selv.tæller / 10))
# Indstil minutværdien
hvis selv.tæller / 10 == 60.0:
selv.sekund == '00'
selv.tæller = 0
min = int (selv.minut) + 1
hvis min < 10 :
selv.minut = '0' + str (min)
andet:
selv.minut = str (min)
# Flet mintue-, sekund- og optællingsværdierne
tekst = selv.minut + ':' + selv.anden + ':' + selv.tælle
# Vis stopurets værdier i etiketten
selv.etiket.setText ('
'+ tekst +'
')# Definer metode til at håndtere startknappen
def Start (selv):
# Indstil billedteksten på startknappen baseret på tidligere billedtekst
hvis selv.Start.tekst () == 'Stop':
selv.Start.setText ('Genoptag')
selv.startWatch = Falsk
andet:
# gør startWatch til sandt
selv.startWatch = Sandt
selv.Start.setText ('Stop')
# Definer metode til håndtering af reset-knappen
def Nulstil (selv):
selv.startWatch = Falsk
# Nulstil alle tællervariabler
selv.tæller = 0
selv.minut = '00'
selv.sekund = '00'
selv.count = '00'
# Indstil startværdierne for stopuret
selv.etiket.setText (str (selv.tæller))
# Opret app-objekt og kør appen
app = QApplication (sys.argv)
stopWt = StopWatchWindow ()
app.udføre ()
Følgende vindue vises, når ovenstående script er udført.
Stopuret begynder at virke, når brugeren klikker på Start knap.
Tælleren stopper med at tælle, når brugeren klikker på Hold op knap.
Eksempel 2: Opret et digitalt ur
Det følgende script implementerer et digitalt ur i Python ved hjælp af QTimer klasse. Scriptet viser det digitale ur i en etiket ved at læse den aktuelle systemtid en gang hvert sekund.
# Importer nødvendige modulerimporter sys
fra PyQt5.QtWidgets importerer QApplication, QWidget, QLabel, QVBoxLayout
fra PyQt5.QtCore importerer QTimer, QTime, Qt
fra PyQt5.QtGui import QFont
# Definer klasse for at oprette det digitale ur
klasse DigitalClock (QWidget):
def __init __ (selv):
super().__i det__()
# Opret en etiket med skrifttype og justering
selv.lblTimer = QLabel ()
font = QFont ('Times', 50)
selv.lblTimer.setFont (skrifttype)
selv.lblTimer.setAlignment (Qt.AlignCenter)
# Opret det vertikale layoutobjekt
v_layout = QVBoxLayout ()
v_layout.addWidget (selv.lblTimer)
selv.setLayout (v_layout)
# Opret timerobjektet, og kald de nødvendige metoder til at vise uret
timer = QTimer (selv)
timer.tiden er gået.forbinde (selv.showClock)
timer.start (1000)
# Indstil titlen på vinduet
selv.setWindowTitle ("Digital ur ved hjælp af QTimer")
# Ændr størrelsen på vinduet
selv.ændre størrelse (270, 120)
# Flyt vinduespositionen
selv.flyt (800, 400)
# Opkaldsmetode for at vise klokkeslættet
selv.showClock ()
# Vis vinduet
selv.at vise()
def showClock (selv):
# Læs den aktuelle tid
Current_Time = QTime.nuværende tid()
# Vis det digitale ur
selv.lblTimer.setText ('
'+ Nuværende_tid.toString ('tt: mm: ss AP') + '
')# Opret app-objekt og kør appen
app = QApplication (sys.argv)
vinde = DigitalClock ()
app.udføre ()
Følgende outputvindue vises, når ovenstående script er udført.
Konklusion
Dato og klokkeslæt for det aktuelle systemtid kan læses på forskellige måder ved hjælp af QTimer-klassen i PyQt-biblioteket. QTimer-klassen blev brugt i denne vejledning til at udføre forskellige eksempler på tidsrelaterede scripts.