Uporaba QTimerja
Naslednji razdelki ponujajo primere, ki ponazarjajo, kako implementirati dve različni aplikaciji z uporabo razreda QTimer.
Primer 1: Ustvari štoparico
Naslednji skript bo implementiral štoparico v Pythonu z uporabo razreda QTimer. Ta aplikacija bo štela število sekund in število minut. Dva gumba se uporabljata za zagon, zaustavitev, nadaljevanje in ponastavitev števca. Ko uporabnik klikne Začni , bo števec začel šteti in napis Začni gumb bo spremenjen v Nehaj. Ko uporabnik klikne Začni gumb z napisom Nehaj, števec se bo začasno ustavil in napis " Začni gumb bo spremenjen v Nadaljuj za nadaljevanje števca na naslednjič. Ko uporabnik klikne Ponastaviti gumb, bodo vse vrednosti števca inicializirane na 0.
# Uvozite potrebne moduleuvoz sys
iz PyQt5.QtWidgets import *
iz PyQt5.QtCore uvoz *
# Določite razred za ustvarjanje štoparice
razred StopWatchWindow (QMainWindow):
def __init __ (samo):
# Pokliči nadrejeni konstruktor
super ().__v__()
# Nastavite naslov okna
sebe.setWindowTitle ("Stop Watch z uporabo QTimer")
# Nastavite geometrijo okna
sebe.setGeometry (100, 100, 300, 200)
# Nastavite potrebne spremenljivke
sebe.števec = 0
sebe.minuta = '00'
sebe.second = '00'
sebe.count = '00'
sebe.startWatch = False
# Ustvari nalepko za prikaz ure
sebe.label = QLabel (samo)
# Nastavite geometrijo nalepke
sebe.nalepko.setGeometry (100, 40, 150, 70)
# Ustvari gumb za zagon
sebe.start = QPushButton ("Start", samo)
# Nastavite geometrijo na gumb za zagon
sebe.začetek.setGeometry (50, 120, 100, 40)
# Pokliči način start (), ko kliknemo gumb za zagon
sebe.začetek.pritisnjeno.povezati (samo.Začni)
# Ustvari gumb za ponastavitev
resetWatch = QPushButton ("Ponastavi", samo)
# Nastavite geometrijo na gumb za ustavitev
resetWatch.setGeometry (160, 120, 100, 40)
# Način ponastavitve klica () ob kliku gumba za ponastavitev
resetWatch.pritisnjeno.povezati (samo.Ponastaviti)
# Ustvari predmet časovnika
timer = QTimer (samo)
# Dodajte metodo s časovnikom
časovnik.odmor.povezati (samo.showCounter)
# Pokličite metodo start () za spreminjanje vrednosti časovnika
časovnik.začetek (100)
# Premaknite položaj okna
sebe.premakni (900, 400)
# Prikažite okno
sebe.pokaži ()
# Določite metodo za spreminjanje vrednosti minut in sekund glede na vrednost časovnika
def showCounter (self):
# Preverite vrednost spremenljivke startWatch, da zaženete ali ustavite štoparico
če jaz.startWatch:
# Števec prirastka za 1
sebe.števec + = 1
# Preštejte in nastavite vrednost števca časa
cnt = int ((self.števec / 10 - int (samo.števec / 10)) * 10)
sebe.count = '0' + str (cnt)
# Nastavite drugo vrednost
če int (self.števec / 10) < 10 :
sebe.second = '0' + str (int (self.števec / 10))
sicer:
sebe.drugi = str (int (self.števec / 10))
# Nastavite minutno vrednost
če jaz.števec / 10 == 60.0:
sebe.drugo == '00'
sebe.števec = 0
min = int (samo.minuta) + 1
če je min < 10 :
sebe.minute = '0' + str (min)
sicer:
sebe.minuta = str (min)
# Spoji vrednosti minte, sekunde in štetja
besedilo = jaz.minute + ':' + self.drugi + ':' + jaz.štetje
# V nalepki prikažite vrednosti štoparice
sebe.nalepko.setText ('
'+ besedilo +'
')# Določite metodo za upravljanje gumba za zagon
def Start (samo):
# Nastavite napis gumba za zagon glede na prejšnji napis
če jaz.začetek.text () == 'Ustavi':
sebe.začetek.setText ('Nadaljuj')
sebe.startWatch = False
sicer:
# make startPazi na true
sebe.startWatch = True
sebe.začetek.setText ('Stop')
# Določite način za upravljanje gumba za ponastavitev
def Ponastavi (samo):
sebe.startWatch = False
# Ponastavi vse spremenljivke števca
sebe.števec = 0
sebe.minuta = '00'
sebe.second = '00'
sebe.count = '00'
# Nastavite začetne vrednosti za štoparico
sebe.nalepko.setText (str (samo.števec))
# Ustvarite objekt aplikacije in zaženite aplikacijo
app = QApplication (sys.argv)
stopWt = StopWatchWindow ()
app.exec ()
Po izvedbi zgornjega skripta se prikaže naslednje okno.
Štoparica začne delovati, ko uporabnik klikne Začni gumb.
Števec bo prenehal šteti, ko uporabnik klikne Nehaj gumb.
2. primer: Ustvarite digitalno uro
Naslednji skript bo v Pythonu uvedel digitalno uro z uporabo QTimer razred. Skript bo prikazal digitalno uro v nalepki tako, da bo vsako sekundo prebral trenutni sistemski čas.
# Uvozite potrebne moduleuvoz sys
iz PyQt5.QtWidgets uvozi QApplication, QWidget, QLabel, QVBoxLayout
iz PyQt5.QtCore uvoz QTimer, QTime, Qt
iz PyQt5.QtGui uvozi QFont
# Določite razred za ustvarjanje digitalne ure
razred DigitalClock (QWidget):
def __init __ (samo):
super ().__v__()
# Ustvarite nalepko s pisavo in poravnavo
sebe.lblTimer = QLabel ()
font = QFont ('Times', 50)
sebe.lblTimer.setFont (pisava)
sebe.lblTimer.setAlignment (Qt.AlignCenter)
# Ustvarite objekt s spremenljivo postavitvijo
v_layout = QVBoxLayout ()
v_layout.addWidget (self.lblTimer)
sebe.setLayout (v_layout)
# Ustvarite predmet časovnika in pokličite potrebne metode za prikaz ure
timer = QTimer (samo)
časovnik.odmor.povezati (samo.showClock)
časovnik.začetek (1000)
# Nastavite naslov okna
sebe.setWindowTitle ("Digital Clock using QTimer")
# Spremenite velikost okna
sebe.velikost (270, 120)
# Premaknite položaj okna
sebe.premakni (800, 400)
# Klicna metoda za prikaz ure
sebe.showClock ()
# Prikažite okno
sebe.pokaži ()
def showClock (samo):
# Preberite trenutni čas
Current_Time = QTime.Trenutni čas()
# Prikažite digitalno uro
sebe.lblTimer.setText ('
'+ Trenutni čas.toString ('hh: mm: ss AP') + '
')# Ustvarite objekt aplikacije in zaženite aplikacijo
app = QApplication (sys.argv)
win = DigitalClock ()
app.exec ()
Po izvedbi zgornjega skripta se prikaže naslednje izhodno okno.
Zaključek
Vrednost datuma in časa trenutnega sistemskega časa je mogoče prebrati na različne načine z uporabo razreda QTimer knjižnice PyQt. Razred QTimer je bil v tej vadnici uporabljen za izvajanje različnih primernih časovnih skriptov.