Python

Kā lietot PyQt QTimer

Kā lietot PyQt QTimer
PyQt bibliotēkas QTimer klase ļauj lietotājiem izveidot digitālo pulksteni, laika skaitītāju, progresa joslu un daudz ko citu. Šī klase tiek izmantota, lai izveidotu parasto taimeri, kas izsūta signālu, kad taimeris iedegas, un tas tiek mantots no QObject klasē. Mērķis QTimer klase ir izveidota kā logrīka bērns. Kad logrīks izdzēš, tiek izdzēsts arī taimera objekts. The QTimer klase nodrošina statisku funkciju, ko sauc singleShot () ko var izmantot, lai izsauktu funkciju pēc noteikta perioda. Šī apmācība parāda, kā lietot QTimer klasē, lai izveidotu ar laiku saistītas PyQt lietojumprogrammas.

QTimer lietošana

Nākamajās sadaļās ir sniegti piemēri, kas ilustrē divu dažādu lietojumprogrammu ieviešanu, izmantojot QTimer klasi.

1. piemērs: izveidojiet hronometru

Šis skripts ieviesīs hronometra lietojumprogrammu Python, izmantojot QTimer klasi. Šajā lietojumprogrammā tiks skaitīts sekunžu un minūšu skaits. Skaitītāja palaišanai, apturēšanai, atsākšanai un atiestatīšanai tiek izmantotas divas pogas. Kad lietotājs noklikšķina uz Sākt poga, skaitītājs sāks skaitīt un paraksts Sākt poga tiks mainīta uz Apstājies. Kad lietotājs noklikšķina uz Sākt poga ar parakstu Apstājies, lete īslaicīgi apstāsies, un paraksts Sākt poga tiks mainīta uz Turpināt turpināt skaitītāju uz nākamo reizi. Kad lietotājs noklikšķina uz Atiestatīt poga, visas skaitītāja vērtības tiks inicializētas uz 0.

# Importējiet nepieciešamos moduļus
importa sys
no PyQt5.QtWidgets importēšana *
no PyQt5.QtCore imports *
# Definējiet klasi, lai izveidotu hronometru
klase StopWatchWindow (QMainWindow):
def __init __ (pats):
# Zvaniet vecākajam konstruktoram
super ().__tajā__()
# Iestatiet loga nosaukumu
pats.setWindowTitle ("Stop Watch, izmantojot QTimer")
# Iestatiet loga ģeometriju
pats.setGeometry (100, 100, 300, 200)
# Iestatiet nepieciešamos mainīgos
pats.skaitītājs = 0
pats.minūte = '00'
pats.otrais = '00'
pats.skaits = '00'
pats.startWatch = Nepatiesa
# Izveidojiet etiķeti, lai parādītu pulksteni
pats.label = QLabel (pats)
# Iestatiet etiķetes ģeometriju
pats.etiķete.setGeometry (100, 40, 150, 70)
# Izveidot sākuma pogu
pats.start = QPushButton ("Start", pats)
# Iestatiet ģeometriju uz pogas Sākt
pats.sākt.setGeometry (50, 120, 100, 40)
# Zvana sākuma () metode, kad tiek noklikšķināts uz pogas Sākt
pats.sākt.nospiests.savienot (sevi.Sākt)
# Izveidot atiestatīšanas pogu
resetWatch = QPushButton ("Atiestatīt", pats)
# Iestatiet ģeometriju uz apturēšanas pogas
resetWatch.setGeometry (160, 120, 100, 40)
# Zvana atiestatīšanas () metode, noklikšķinot uz atiestatīšanas pogas
resetWatch.nospiests.savienot (sevi.Atiestatīt)
# Izveidot taimera objektu
taimeris = QTimer (pats)
# Pievienojiet metodi kopā ar taimeri
taimeris.pārtraukums.savienot (sevi.showCounter)
# Zvana sākuma () metode, lai modificētu taimera vērtību
taimeris.sākums (100)
# Pārvietojiet loga pozīciju
pats.pārvietoties (900, 400)
# Parādīt logu
pats.rādīt ()
# Definējiet metodi, kā modificēt minūšu un sekundes vērtības, pamatojoties uz taimera vērtību
def showCounter (pats):
# Pārbaudiet startWatch mainīgā vērtību, lai sāktu vai apturētu hronometru
ja pats.startWatch:
# Pieauguma skaitītājs par 1
pats.skaitītājs + = 1
# Skaitiet un iestatiet laika skaitītāja vērtību
cnt = int ((pats.skaitītājs / 10 - int (pats.skaitītājs / 10)) * 10)
pats.skaits = '0' + str (cnt)
# Iestatiet otro vērtību
ja int (pats.skaitītājs / 10) < 10 :
pats.otrais = '0' + str (int (pats.skaitītājs / 10))
cits:
pats.otrais = str (int (pats.skaitītājs / 10))
# Iestatiet minūtes vērtību
ja pats.skaitītājs / 10 == 60.0:
pats.otrais == '00'
pats.skaitītājs = 0
min = int (pats.minūte) + 1
ja min < 10 :
pats.minūte = '0' + str (min)
cits:
pats.minūte = str (min)
# Apvienojiet kaltuves, otrās un skaitīšanas vērtības
teksts = pats.minūte + ':' + pats.otrais + ':' + pats.skaitīt
# Attēlā parādiet hronometra vērtības
pats.etiķete.setText ('

"+ teksts +"

')
# Definējiet sākuma pogas apstrādes metodi
def Sākt (pats):
# Iestatiet sākuma pogas parakstu, pamatojoties uz iepriekšējo parakstu
ja pats.sākt.teksts () == 'Apturēt':
pats.sākt.setText ('Atsākt')
pats.startWatch = Nepatiesa
cits:
# padarīt startWatch patiesu
pats.startWatch = True
pats.sākt.setText ('Stop')
# Definējiet metodi, kā rīkoties ar atiestatīšanas pogu
def Reset (self):
pats.startWatch = Nepatiesa
# Atiestatīt visus skaitītāja mainīgos
pats.skaitītājs = 0
pats.minūte = '00'
pats.otrais = '00'
pats.skaits = '00'
# Iestatiet hronometra sākotnējās vērtības
pats.etiķete.setText (str (sevis.skaitītājs))
# Izveidojiet lietotnes objektu un palaidiet lietotni
app = QApplication (sys.argv)
stopWt = StopWatchWindow ()
lietotne.exec ()

Pēc iepriekš minētā skripta izpildes parādīsies šāds logs.

Hronometrs sāks darboties pēc tam, kad lietotājs noklikšķinās uz Sākt pogu.

Pēc tam, kad lietotājs noklikšķina uz Apstājies pogu.

2. piemērs: izveidojiet digitālo pulksteni

Šis skripts ieviesīs digitālo pulksteni Python, izmantojot QTimer klasē. Skripts parādīs digitālo pulksteni etiķetē, reizi sekundē nolasot pašreizējo sistēmas laiku.

# Importējiet nepieciešamos moduļus
importa sys
no PyQt5.QtWidgets importē QApplication, QWidget, QLabel, QVBoxLayout
no PyQt5.QtCore importēt QTimer, QTime, Qt
no PyQt5.QtGui importēt QFont
# Definējiet klasi, lai izveidotu digitālo pulksteni
klases DigitalClock (QWidget):
def __init __ (pats):
super ().__tajā__()
# Izveidojiet etiķeti ar fontu un līdzinājumu
pats.lblTimer = QLabel ()
font = QFont ('Times', 50)
pats.lblTimer.setFont (fonts)
pats.lblTimer.setAlignment (Qt.AlignCenter)
# Izveidojiet vārtu izkārtojuma objektu
v_layout = QVBoxLayout ()
v_layout.addWidget (self.lblTimer)
pats.setLayout (v_layout)
# Izveidojiet taimera objektu un izsauciet nepieciešamās metodes pulksteņa parādīšanai
taimeris = QTimer (pats)
taimeris.pārtraukums.savienot (sevi.showClock)
taimeris.sākums (1000)
# Iestatiet loga nosaukumu
pats.setWindowTitle ("Digitālais pulkstenis, izmantojot QTimer")
# Mainiet loga izmēru
pats.mainīt izmēru (270, 120)
# Pārvietojiet loga pozīciju
pats.pārvietot (800, 400)
# Zvana metode, lai parādītu laiku
pats.showClock ()
# Parādīt logu
pats.rādīt ()
def showClock (pats):
# Izlasiet pašreizējo laiku
Current_Time = QTime.pašreizējais laiks()
# Parādīt digitālo pulksteni
pats.lblTimer.setText ('

'+ Pašreizējais laiks.toString ('hh: mm: ss AP') + '

')
# Izveidojiet lietotnes objektu un palaidiet lietotni
app = QApplication (sys.argv)
win = DigitalClock ()
lietotne.exec ()

Pēc iepriekš minētā skripta izpildes parādīsies šāds izvades logs.

Secinājums

Pašreizējā sistēmas laika datuma un laika vērtību var nolasīt dažādos veidos, izmantojot PyQt bibliotēkas QTimer klasi. Šajā apmācībā tika izmantota klase QTimer, lai izpildītu dažādus ar laiku saistītus skriptus.

Microsoft Sculpt Touch bezvadu peles apskats
Es nesen lasīju par Microsoft Sculpt Touch bezvadu pele un nolēma to nopirkt. Pēc kāda laika izmantošanas es nolēmu dalīties savā pieredzē ar to. Šo b...
AppyMouse ekrāna skārienpaliktnis un peles rādītājs Windows planšetdatoriem
Planšetdatoru lietotājiem bieži pietrūkst peles rādītāja, it īpaši, ja viņi parasti lieto klēpjdatorus. Skārienekrāna viedtālruņiem un planšetdatoriem...
Vidējā peles poga nedarbojas sistēmā Windows 10
The peles vidējā poga palīdz jums ritināt garas tīmekļa lapas un ekrānus ar lielu datu daudzumu. Ja tas apstājas, jūs galu galā izmantosiet tastatūru,...