QTimer bruk
De følgende avsnittene gir eksempler som illustrerer hvordan du implementerer to forskjellige applikasjoner ved bruk av QTimer-klassen.
Eksempel 1: Lag en stoppeklokke
Følgende skript implementerer et stoppeklokke-program i Python ved bruk av QTimer-klassen. Denne applikasjonen vil telle antall sekunder og antall minutter. To knapper brukes til å starte, stoppe, gjenoppta og tilbakestille telleren. Når brukeren klikker på Start knappen, vil telleren begynne å telle, og bildeteksten på Start knappen vil bli endret til Stoppe. Når brukeren klikker på Start knapp med bildeteksten Stoppe, telleren stopper midlertidig, og bildeteksten på Start knappen vil bli endret til Gjenoppta for å fortsette telleren til neste gang. Når brukeren klikker på Nullstille knappen vil alle verdiene til telleren initialiseres til 0.
# Importer nødvendige modulerimporter sys
fra PyQt5.Import av QtWidgets *
fra PyQt5.QtCore-import *
# Definer klasse for å lage stoppuret
klasse StopWatchWindow (QMainWindow):
def __init __ (selv):
# Ring foreldrekonstruktøren
super().__i det__()
# Sett tittelen på vinduet
selv-.setWindowTitle ("Stop Watch using QTimer")
# Sett geometrien for vinduet
selv-.setGeometry (100, 100, 300, 200)
# Sett de nødvendige variablene
selv-.teller = 0
selv-.minutt = '00'
selv-.sekund = '00'
selv-.count = '00'
selv-.startWatch = Falsk
# Lag etikett for å vise klokken
selv-.label = QLabel (selv)
# Sett geometri for etiketten
selv-.merkelapp.setGeometry (100, 40, 150, 70)
# Opprett startknapp
selv-.start = QPushButton ("Start", selv)
# Sett geometri til startknappen
selv-.start.setGeometry (50, 120, 100, 40)
# Metode for anropsstart () når du klikker på startknappen
selv-.start.presset.koble (selv.Start)
# Opprett reset-knapp
resetWatch = QPushButton ("Tilbakestill", selv)
# Sett geometri til stoppknappen
resetWatch.setGeometry (160, 120, 100, 40)
# Metode for tilbakestilling av samtale () når du klikker på tilbakestillingsknappen
resetWatch.presset.koble (selv.Nullstille)
# Lag timer-objekt
timer = QTimer (selv)
# Legg til en metode med tidtakeren
timer.pause.koble (selv.showCounter)
# Anrop start () -metoden for å endre tidverdien
timer.start (100)
# Flytt vinduets posisjon
selv-.flytte (900, 400)
# Vis vinduet
selv-.vise fram()
# Definer en metode for å endre verdiene til minutter og sekunder basert på tidverdien
def showCounter (selv):
# Kontroller verdien av startWatch-variabelen for å starte eller stoppe Stop Watch
hvis selv.startWatch:
# Inkrement teller med 1
selv-.teller + = 1
# Tell og sett tidstellerverdien
cnt = int ((selvtillit).teller / 10 - int (selvtillit.teller / 10)) * 10)
selv-.count = '0' + str (cnt)
# Still inn den andre verdien
hvis int (selv.teller / 10) < 10 :
selv-.sekund = '0' + str (int (selvtill.teller / 10))
ellers:
selv-.andre = str (int (selv.teller / 10))
# Still inn minuttverdien
hvis selv.teller / 10 == 60.0:
selv-.andre == '00'
selv-.teller = 0
min = int (selv.minutt) + 1
hvis min < 10 :
selv-.minutt = '0' + str (min)
ellers:
selv-.minutt = str (min)
# Slå sammen mintue-, sekund- og telleverdiene
tekst = selvtillit.minutt + ':' + selv.andre + ':' + selv.telle
# Vis stoppurverdiene i etiketten
selv-.merkelapp.setText ('
'+ tekst +'
')# Definer metode for å håndtere startknappen
def Start (selv):
# Sett bildeteksten til startknappen basert på forrige bildetekst
hvis selv.start.tekst () == 'Stopp':
selv-.start.setText ('Fortsett')
selv-.startWatch = Falsk
ellers:
# gjør startWatch til sant
selv-.startWatch = Sant
selv-.start.setText ('Stopp')
# Definer metode for å håndtere tilbakestillingsknappen
def Tilbakestill (selv):
selv-.startWatch = Falsk
# Tilbakestill alle tellervariablene
selv-.teller = 0
selv-.minutt = '00'
selv-.sekund = '00'
selv-.count = '00'
# Still inn startverdiene for stoppeklokken
selv-.merkelapp.setText (str (selv.disk))
# Opprett appobjekt og kjør appen
app = QApplication (sys.argv)
stopWt = StopWatchWindow ()
app.utføre ()
Følgende vindu vises etter at ovenstående skript er utført.
Stoppeklokken vil begynne å virke etter at brukeren klikker på Start knapp.
Telleren slutter å telle etter at brukeren klikker på Stoppe knapp.
Eksempel 2: Lag en digital klokke
Følgende skript implementerer en digital klokke i Python ved hjelp av QTimer klasse. Skriptet viser den digitale klokken på en etikett ved å lese gjeldende 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 importerer QFont
# Definer klasse for å lage den digitale klokken
klasse DigitalClock (QWidget):
def __init __ (selv):
super().__i det__()
# Lag en etikett med skrift og justering
selv-.lblTimer = QLabel ()
font = QFont ('Times', 50)
selv-.lblTimer.setFont (font)
selv-.lblTimer.setAlignment (Qt.AlignCenter)
# Lag det vertikale layoutobjektet
v_layout = QVBoxLayout ()
v_layout.addWidget (selvtill.lblTimer)
selv-.setLayout (v_layout)
# Lag tidsurobjektet og ring nødvendige metoder for å vise klokken
timer = QTimer (selv)
timer.pause.koble (selv.showClock)
timer.start (1000)
# Sett tittelen på vinduet
selv-.setWindowTitle ("Digital Clock using QTimer")
# Endre størrelsen på vinduet
selv-.endre størrelse (270, 120)
# Flytt vinduets posisjon
selv-.flytte (800, 400)
# Ringmetode for å vise klokkeslettet
selv-.showClock ()
# Vis vinduet
selv-.vise fram()
def showClock (selv):
# Les gjeldende tid
Current_Time = QTime.nåværende tid()
# Vis den digitale klokken
selv-.lblTimer.setText ('
'+ Nåværende_tid.toString ('tt: mm: ss AP') + '
')# Opprett appobjekt og kjør appen
app = QApplication (sys.argv)
vinn = DigitalClock ()
app.utføre ()
Følgende utgangsvindu vises etter at skriptet ovenfor er utført.
Konklusjon
Dato og klokkeslett for gjeldende systemtid kan leses på forskjellige måter ved hjelp av QTimer-klassen i PyQt-biblioteket. QTimer-klassen ble brukt i denne opplæringen for å utføre forskjellige eksempler på tidsrelaterte skript.