Piton

Kako se koristi PyQt QTimer

Kako se koristi PyQt QTimer
Klasa QTimer knjižnice PyQt omogućuje korisnicima stvaranje digitalnog sata, brojača vremena, trake napretka i još mnogo toga. Ova se klasa koristi za stvaranje redovitog mjerača vremena koji šalje signal kada se tajmer aktivira i nasljeđuje od QObject razred. Predmet QTimer klasa je stvorena kao dijete widgeta. Kada se widget izbriše, objekt timera također se briše. The QTimer klasa pruža statičku funkciju tzv jedan pucanj() koji se može koristiti za pozivanje funkcije nakon određenog razdoblja. Ovaj vam vodič pokazuje kako koristiti QTimer klase za stvaranje vremenskih PyQt aplikacija.

Korištenje QTimera

Sljedeći odjeljci daju primjere koji ilustriraju kako implementirati dvije različite aplikacije pomoću klase QTimer.

Primjer 1: Stvorite štopericu

Sljedeća će skripta implementirati štopericu u Pythonu pomoću klase QTimer. Ovaj će program računati broj sekundi i broj minuta. Dva se gumba koriste za pokretanje, zaustavljanje, ponovno pokretanje i resetiranje brojača. Kada korisnik klikne na Početak gumb, brojač će početi brojati i natpis Početak gumb bit će promijenjen u Stop. Kada korisnik klikne na Početak gumb s natpisom Stop, brojač će se privremeno zaustaviti i natpis Početak gumb bit će promijenjen u Nastavi za nastavak brojača do sljedećeg puta. Kada korisnik klikne na Resetirati tipke, sve vrijednosti brojača bit će inicijalizirane na 0.

# Uvezite potrebne module
import sys
iz PyQt5.QtWidgets import *
iz PyQt5.QtCore uvoz *
# Definirajte razred za izradu štoperice
klasa StopWatchWindow (QMainWindow):
def __init __ (samo):
# Pozovite nadređeni konstruktor
super().__u tome__()
# Postavite naslov prozora
sebe.setWindowTitle ("Štoperica pomoću QTimera")
# Postavite geometriju prozora
sebe.setGeometry (100, 100, 300, 200)
# Postavite potrebne varijable
sebe.brojač = 0
sebe.minuta = '00'
sebe.drugo = '00'
sebe.count = '00'
sebe.startWatch = Netačno
# Stvorite oznaku za prikaz sata
sebe.oznaka = QLabel (samo)
# Postavite geometriju naljepnice
sebe.označiti.setGeometry (100, 40, 150, 70)
# Stvori gumb za pokretanje
sebe.start = QPushButton ("Start", samostalno)
# Postavite geometriju na gumb za pokretanje
sebe.početak.setGeometry (50, 120, 100, 40)
# Pozovite metodu start () kada se klikne gumb za pokretanje
sebe.početak.pritisnut.povezati (samo.Početak)
# Stvori gumb za resetiranje
resetWatch = QPushButton ("Resetiraj", samostalno)
# Postavite geometriju na gumb za zaustavljanje
resetWatch.setGeometry (160, 120, 100, 40)
# Način resetiranja poziva () kada se klikne gumb za resetiranje
resetWatch.pritisnut.povezati (samo.Poništi)
# Stvorite objekt odbrojavanja
timer = QTimer (samostalno)
# Dodajte metodu pomoću odbrojavanja
mjerač vremena.pauza.povezati (samo.showCounter)
# Pozovite metodu start () za izmjenu vrijednosti odbrojavanja
mjerač vremena.početak (100)
# Pomaknite položaj prozora
sebe.pomak (900, 400)
# Prikažite prozor
sebe.pokazati()
# Definirajte metodu za izmjenu vrijednosti minuta i sekundi na temelju vrijednosti timera
def showCounter (self):
# Provjerite vrijednost varijable startWatch za pokretanje ili zaustavljanje štoperice
ako ja.startGledanje:
# Brojač uvećanja za 1
sebe.brojač + = 1
# Prebrojite i postavite vrijednost brojača vremena
cnt = int ((samo.brojač / 10 - int (samo.brojač / 10)) * 10)
sebe.count = '0' + str (cnt)
# Postavite drugu vrijednost
ako int (self.brojač / 10) < 10 :
sebe.second = '0' + str (int (self.brojač / 10))
drugo:
sebe.drugo = str (int (self.brojač / 10))
# Postavite minutnu vrijednost
ako ja.brojač / 10 == 60.0:
sebe.drugo == '00'
sebe.brojač = 0
min = int (samo.minuta) + 1
ako je min < 10 :
sebe.minute = '0' + str (min)
drugo:
sebe.minuta = str (min)
# Spoji vrijednosti mintue, second i count
tekst = ja.minuta + ':' + ja.drugo + ':' + samo.računati
# Prikažite vrijednosti štoperice na naljepnici
sebe.označiti.setText ('

'+ tekst +'

')
# Definirajte metodu za rukovanje gumbom za pokretanje
def Start (samostalno):
# Postavite naslov gumba za pokretanje na temelju prethodnog opisa
ako ja.početak.text () == 'Zaustavi':
sebe.početak.setText ('Nastavi')
sebe.startWatch = Netačno
drugo:
# make startPratite istinu
sebe.startWatch = Istina
sebe.početak.setText ('Stop')
# Definirajte metodu za rukovanje gumbom za resetiranje
def Resetiranje (samo):
sebe.startWatch = Netačno
# Resetirajte sve varijable brojača
sebe.brojač = 0
sebe.minuta = '00'
sebe.drugo = '00'
sebe.count = '00'
# Postavite početne vrijednosti štoperice
sebe.označiti.setText (str (samo.brojač))
# Stvorite objekt aplikacije i pokrenite aplikaciju
app = QApplication (sys.argv)
stopWt = StopWatchWindow ()
app.izvršiti ()

Sljedeći će se prozor pojaviti nakon izvršavanja gornje skripte.

Štoperica će početi raditi nakon što korisnik klikne na Početak dugme.

Brojač će se prestati brojati nakon što korisnik klikne na Stop dugme.

Primjer 2: Stvorite digitalni sat

Sljedeća će skripta implementirati digitalni sat u Pythonu koristeći QTimer razred. Skripta će prikazati digitalni sat u naljepnici čitanjem trenutnog sistemskog vremena jednom u sekundi.

# Uvezite potrebne module
import sys
iz PyQt5.QtWidgets uvoze QApplication, QWidget, QLabel, QVBoxLayout
iz PyQt5.QtCore uvoz QTimer, QTime, Qt
iz PyQt5.QtGui uvoz QFont
# Definirajte klasu za stvaranje digitalnog sata
klasa DigitalClock (QWidget):
def __init __ (samo):
super().__u tome__()
# Stvorite naljepnicu s fontom i poravnanjem
sebe.lblTimer = QLabel ()
font = QFont ('Times', 50)
sebe.lblTimer.setFont (font)
sebe.lblTimer.setAlignment (Qt.AlignCenter)
# Stvorite objekt s promjenjivim izgledom
v_layout = QVBoxLayout ()
v_layout.addWidget (self.lblTimer)
sebe.setLayout (v_layout)
# Stvorite objekt tajmera i pozovite potrebne metode za prikaz sata
timer = QTimer (samo)
mjerač vremena.pauza.povezati (samo.showClock)
mjerač vremena.start (1000)
# Postavite naslov prozora
sebe.setWindowTitle ("Digitalni sat pomoću QTimera")
# Promijenite veličinu prozora
sebe.promjena veličine (270, 120)
# Pomaknite položaj prozora
sebe.pomak (800, 400)
# Način poziva za prikaz vremena
sebe.showClock ()
# Prikažite prozor
sebe.pokazati()
def showClock (samo):
# Pročitajte trenutno vrijeme
Current_Time = QTime.Trenutno vrijeme()
# Prikažite digitalni sat
sebe.lblTimer.setText ('

'+ Current_Time.toString ('hh: mm: ss AP') + '

')
# Stvorite objekt aplikacije i pokrenite aplikaciju
app = QApplication (sys.argv)
win = DigitalClock ()
app.izvršiti ()

Sljedeći će se izlazni prozor pojaviti nakon izvršavanja gornje skripte.

Zaključak

Vrijednost datuma i vremena trenutnog sistemskog vremena mogu se čitati na razne načine pomoću klase QTimer knjižnice PyQt. Klasa QTimer korištena je u ovom vodiču za izvršavanje različitih primjera vremenskih skripti.

Najbolje aplikacije za mapiranje gamepada za Linux
Ako volite igrati igre na Linuxu s gamepadom umjesto tipičnim sustavom za unos tipkovnice i miša, za vas postoji nekoliko korisnih aplikacija. Mnoge r...
Korisni alati za Linux igrače
Ako volite igrati igre na Linuxu, velika je vjerojatnost da ste možda koristili aplikacije i uslužne programe poput Wine, Lutris i OBS Studio za pobol...
HD Remastered igre za Linux koje ranije nisu imale Linux izdanje
Mnogi programeri i izdavači igara dolaze s HD remasterom starih igara kako bi produžili životni vijek franšize, molimo obožavatelje da zatraže kompati...