Python

Kako uporabljati PyQt QTimer

Kako uporabljati PyQt QTimer
Razred QTimer knjižnice PyQt omogoča uporabnikom, da ustvarijo digitalno uro, števec časa, vrstico napredovanja in še več. Ta razred se uporablja za ustvarjanje običajnega časovnika, ki pošlje signal, ko se časovnik sproži in podeduje od QObject razred. Predmet QTimer razred je ustvarjen kot podrejen pripomoček. Ko se gradnik izbriše, se izbriše tudi predmet časovnika. The QTimer class ponuja statično funkcijo, imenovano singleShot () ki ga lahko uporabimo za klic funkcije po določenem obdobju. Ta vadnica vam prikazuje, kako uporabljati QTimer razred za ustvarjanje aplikacij PyQt, povezanih s časom.

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 module
uvoz 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 module
uvoz 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.

Kako uporabljati AutoKey za avtomatizacijo iger Linux
AutoKey je namizni pripomoček za avtomatizacijo za Linux in X11, programiran v Python 3, GTK in Qt. Z njegovo funkcijo skriptiranja in MACRO lahko avt...
Kako prikazati števec FPS v igrah Linux
Linux gaming je dobil velik zagon, ko je Valve leta 2012 napovedal podporo Linuxu za odjemalca Steam in njihove igre. Od takrat se je veliko AAA in in...
Kako prenesti in igrati Sid Meier's Civilization VI v Linuxu
Uvod v igro Civilization 6 je sodoben pogled na klasični koncept, uveden v seriji iger Age of Empires. Ideja je bila dokaj preprosta; začeli bi v zelo...