Hvordan du bruker pyqt qtimer

Hvordan du bruker pyqt qtimer
Qtimer -klassen på PYQT -biblioteket lar brukere lage en digital klokke, tidsteller, fremdriftslinje og mer. Denne klassen brukes til å lage en vanlig tidtaker som sender ut et signal når timeren skyter og den arver fra QObject klasse. Objektet med Qtimer Klasse er opprettet som barn av en widget. Når widgeten sletter, sletter timerobjektet også. De Qtimer Klassen gir en statisk funksjon som heter enkelt skudd() som kan brukes til å ringe en funksjon etter en bestemt periode. Denne opplæringen viser deg hvordan du bruker Qtimer klasse for å lage tidsrelaterte PYQT-applikasjoner.

Qtimer bruk

Følgende seksjoner gir eksempler som illustrerer hvordan du implementerer to forskjellige applikasjoner ved hjelp av QTimer -klassen.

Eksempel 1: Lag stoppeklokke

Følgende skript vil implementere en stoppeklokkeapplikasjon i Python ved hjelp 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, telleren vil begynne å telle, og bildeteksten til Start knappen vil bli endret til Stoppe. Når brukeren klikker på Start knapp med bildeteksten Stoppe, disken vil stoppe midlertidig, og bildeteksten til Start knappen vil bli endret til Gjenoppta For å fortsette disken til neste gang. Når brukeren klikker på Nullstille knapp, alle verdiene på telleren vil bli initialisert til 0.

# Importer nødvendige moduler
Importer Sys
Fra PYQT5.QtWidgets import *
Fra PYQT5.Qtcore import *
# Definer klasse for å lage stoppeklokken
Class StopWatchWindow (QMainWindow):
def __init __ (selv):
# Ring foreldrekonstruktøren
super().__i det__()
# Angi tittelen på vinduet
selv-.SetWindowTitle ("Stop Watch ved hjelp av Qtimer")
# Angi geometrien for vinduet
selv-.setgeometry (100, 100, 300, 200)
# Angi de nødvendige variablene
selv-.teller = 0
selv-.minutt = '00'
selv-.Second = '00'
selv-.Count = '00'
selv-.startwatch = falsk
# Lag etikett for å vise klokken
selv-.etikett = Qlabel (selv)
# Angi geometri for etiketten
selv-.merkelapp.setgeometry (100, 40, 150, 70)
# Opprett startknapp
selv-.start = qpushbutton ("start", selv)
# Angi geometri til startknappen
selv-.start.setgeometry (50, 120, 100, 40)
# Call Start () Metode når startknappen er klikket
selv-.start.presset.Koble til (selv.Start)
# Opprett tilbakestillingsknapp
RESETWATCH = QPUSHBUTTON ("RESET", SELF)
# Angi geometri til stoppknappen
Resetwatch.setgeometry (160, 120, 100, 40)
# Ring Reset () Metode når tilbakestillingsknappen er klikket
Resetwatch.presset.Koble til (selv.Nullstille)
# Opprett timerobjekt
Timer = Qtimer (selv)
# Legg til en metode med tidtakeren
Timer.pause.Koble til (selv.showcounter)
# Call Start () -metode for å endre tidtakerverdien
Timer.Start (100)
# Flytt vinduets plassering
selv-.Flytt (900, 400)
# Vis vinduet
selv-.forestilling()
# Definer en metode for å endre verdiene på minutter og sekunder basert på timerverdien
def showcounter (selv):
# Sjekk verdien av startwatch -variabelen for å starte eller stoppe stoppeklokken
Hvis selv.startwatch:
# Økningsteller med 1
selv-.teller += 1
# Telle og angi tids tellerverdien
cnt = int ((selv.Teller/10 - Int (selv.teller/10))*10)
selv-.Count = '0' + Str (CNT)
# Angi den andre verdien
Hvis int (selv.teller/10) < 10 :
selv-.Second = '0' + Str (int (selv.teller / 10))
ellers:
selv-.Second = Str (int (selv.teller / 10))
# Angi minuttverdien
Hvis selv.teller / 10 == 60.0:
selv-.Second == '00'
selv-.teller = 0
min = int (selv.minutt) + 1
Hvis min < 10 :
selv-.minutt = '0' + str (min)
ellers:
selv-.minutt = str (min)
# Slå sammen mynten, andre og telle verdier
tekst = selv.minutt + ':' + selv.andre + ':' + selv.telle
# Vis stoppklokkeverdiene i etiketten
selv-.merkelapp.SettExt ('

' + tekst +'

')
# Definer metode for å håndtere startknappen
def start (selv):
# Angi bildeteksten til startknappen basert på tidligere bildetekst
Hvis selv.start.tekst () == 'stopp':
selv-.start.setText ('gjenoppta')
selv-.startwatch = falsk
ellers:
# Gjør startwatch til sann
selv-.startwatch = sant
selv-.start.setText ('stopp')
# Definer metode for å håndtere tilbakestillingsknappen
def reset (self):
selv-.startwatch = falsk
# Tilbakestill alle motvariabler
selv-.teller = 0
selv-.minutt = '00'
selv-.Second = '00'
selv-.Count = '00'
# Angi de opprinnelige verdiene for stoppeklokken
selv-.merkelapp.SettExt (STR (selv.disk))
# Lag appobjekt og kjør appen
app = qapplication (sys.argv)
stopwt = stopwatchWindow ()
app.exec ()

Følgende vindu vises etter at skriptet ovenfor er utført.

Stoppeklokken vil begynne å fungere etter at brukeren klikker på Start knapp.

Telleren vil slutte å telle etter at brukeren klikker på Stoppe knapp.

Eksempel 2: Lag en digital klokke

Følgende skript vil implementere en digital klokke i Python ved å bruke Qtimer klasse. Skriptet vil vise den digitale klokken i en etikett ved å lese gjeldende systemtid en gang hvert sekund.

# Importer nødvendige moduler
Importer Sys
Fra PYQT5.QtWidgets importerer qapplication, qwidget, qlabel, qvboxlayout
Fra PYQT5.Qtcore import qtimer, qtime, qt
Fra PYQT5.Qtgui import 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)
# Opprett det vanlige layoutobjektet
v_layout = qvboxLayout ()
V_Layout.AddWidget (selv.Lbltimer)
selv-.setslayout (v_layout)
# Lag tidsobjektet og ring nødvendige metoder for å vise klokken
Timer = Qtimer (selv)
Timer.pause.Koble til (selv.showclock)
Timer.Start (1000)
# Angi tittelen på vinduet
selv-.SetWindowTitle ("Digital Clock Using Qtimer")
# Endre størrelsen på vinduet
selv-.Endre størrelse (270, 120)
# Flytt vinduets plassering
selv-.Flytt (800, 400)
# Samtale metode for å vise tiden
selv-.ShowClock ()
# Vis vinduet
selv-.forestilling()
def showclock (selv):
# Les gjeldende tid
Current_time = qtime.nåværende tid()
# Vis den digitale klokken
selv-.Lbltimer.SettExt ('

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

')
# Lag appobjekt og kjør appen
app = qapplication (sys.argv)
Win = DigitalClock ()
app.exec ()

Følgende utgangsvindu vises etter at skriptet ovenfor er utført.

Konklusjon

Dato og klokkeslettverdi for gjeldende systemtid kan leses på forskjellige måter ved å bruke QTimer -klassen på PYQT -biblioteket. Qtimer-klassen ble brukt i denne opplæringen for å utføre forskjellige eksempler på tidsrelaterte skript.