Pytonorm

Hur man använder PyQt QTimer

Hur man använder PyQt QTimer
QTimer-klassen i PyQt-biblioteket tillåter användare att skapa en digital klocka, tidräknare, förloppsindikator och mer. Denna klass används för att skapa en vanlig timer som skickar ut en signal när timern avfyras och den ärver från QObject klass. Syftet med QTimer klass skapas som ett barn till en widget. När widgeten raderas raderas även timerobjektet. De QTimer klass ger en statisk funktion som kallas Ett enda skott() som kan användas för att anropa en funktion efter en viss period. Denna handledning visar hur du använder QTimer klass för att skapa tidsrelaterade PyQt-applikationer.

QTimer-användning

Följande avsnitt ger exempel som illustrerar hur man implementerar två olika applikationer med QTimer-klassen.

Exempel 1: Skapa ett stoppur

Följande skript implementerar ett stoppursprogram i Python med QTimer-klassen. Denna applikation räknar antalet sekunder och antalet minuter. Två knappar används för att starta, stoppa, återuppta och återställa räknaren. När användaren klickar på Start -knappen kommer räknaren att räkna och texten på Start -knappen ändras till Sluta. När användaren klickar på Start med texten Sluta, räknaren stannar tillfälligt och texten på Start -knappen ändras till Återuppta för att fortsätta räknaren till nästa gång. När användaren klickar på Återställa -knappen initialiseras alla värden på räknaren till 0.

# Importera nödvändiga moduler
importera sys
från PyQt5.Import av QtWidgets *
från PyQt5.QtCore-import *
# Definiera klass för att skapa stoppuret
klass StopWatchWindow (QMainWindow):
def __init __ (själv):
# Ring föräldrakonstruktören
super().__i det__()
# Ställ in fönstrets titel
själv.setWindowTitle ("Stoppa klockan med QTimer")
# Ställ in geometrin för fönstret
själv.setGeometry (100, 100, 300, 200)
# Ställ in nödvändiga variabler
själv.räknare = 0
själv.minut = '00'
själv.sekund = '00'
själv.count = '00'
själv.startWatch = Falskt
# Skapa etikett för att visa klockan
själv.etikett = QLabel (själv)
# Ställ in geometri för etiketten
själv.märka.setGeometry (100, 40, 150, 70)
# Skapa startknapp
själv.start = QPushButton ("Start", själv)
# Ställ in geometri till startknappen
själv.Start.setGeometry (50, 120, 100, 40)
# Metod för samtalsstart () när du klickar på startknappen
själv.Start.nedtryckt.ansluta (själv.Start)
# Skapa återställningsknapp
resetWatch = QPushButton ("Återställ", själv)
# Ställ in geometrin till stoppknappen
resetWatch.setGeometry (160, 120, 100, 40)
# Metod för återställning av samtal () när du klickar på återställningsknappen
resetWatch.nedtryckt.ansluta (själv.Återställa)
# Skapa timerobjekt
timer = QTimer (själv)
# Lägg till en metod med timern
timer.Paus.ansluta (själv.showCounter)
# Metod för samtalsstart () för att ändra timervärdet
timer.start (100)
# Flytta fönstrets position
själv.flytta (900, 400)
# Visa fönstret
själv.show()
# Definiera en metod för att ändra värdena på minuter och sekunder baserat på timervärdet
def showCounter (själv):
# Kontrollera värdet på startWatch-variabeln för att starta eller stoppa Stop Watch
om själv.startWatch:
# Ökningsräknare med 1
själv.räknare + = 1
# Räkna och ställ in tidräknarvärdet
cnt = int ((själv.räknare / 10 - int (själv.räknare / 10)) * 10)
själv.count = '0' + str (cnt)
# Ställ in det andra värdet
om int (själv.räknare / 10) < 10 :
själv.sekund = '0' + str (int (själv.räknare / 10))
annan:
själv.andra = str (int (själv.räknare / 10))
# Ställ in minutvärdet
om själv.räknare / 10 == 60.0:
själv.andra == '00'
själv.räknare = 0
min = int (själv.minut) + 1
om min < 10 :
själv.minut = '0' + str (min)
annan:
själv.minut = str (min)
# Slå ihop värdena för mint, sekund och räkning
text = själv.minut + ':' + själv.andra + ':' + jag.räkna
# Visa stoppurets värden i etiketten
själv.märka.setText ('

'+ text +'

')
# Definiera metod för att hantera startknappen
def Start (själv):
# Ställ in bildtexten på startknappen baserat på föregående bildtext
om själv.Start.text () == 'Stopp':
själv.Start.setText ('Resume')
själv.startWatch = Falskt
annan:
# gör startWatch till sant
själv.startWatch = True
själv.Start.setText ('Stopp')
# Definiera metod för att hantera återställningsknappen
def Återställ (själv):
själv.startWatch = Falskt
# Återställ alla räknervariabler
själv.räknare = 0
själv.minut = '00'
själv.sekund = '00'
själv.count = '00'
# Ställ in startvärdena för stoppuret
själv.märka.setText (str (själv.disken))
# Skapa appobjekt och kör appen
app = QApplication (sys.argv)
stopWt = StopWatchWindow ()
app.exec ()

Följande fönster visas efter att ovanstående skript har körts.

Stoppuret börjar fungera när användaren klickar på Start knapp.

Räknaren slutar räkna efter att användaren klickar på Sluta knapp.

Exempel 2: Skapa en digital klocka

Följande skript implementerar en digital klocka i Python med QTimer klass. Manuset visar den digitala klockan i en etikett genom att läsa den aktuella systemtiden en gång per sekund.

# Importera nödvändiga moduler
importera sys
från PyQt5.QtWidgets importerar QApplication, QWidget, QLabel, QVBoxLayout
från PyQt5.QtCore importerar QTimer, QTime, Qt
från PyQt5.QtGui importerar QFont
# Definiera klass för att skapa den digitala klockan
klass DigitalClock (QWidget):
def __init __ (själv):
super().__i det__()
# Skapa en etikett med typsnitt och justering
själv.lblTimer = QLabel ()
font = QFont ('Times', 50)
själv.lblTimer.setFont (typsnitt)
själv.lblTimer.setAlignment (Qt.Centrera i linje med)
# Skapa det vertikala layoutobjektet
v_layout = QVBoxLayout ()
v_layout.addWidget (själv.lblTimer)
själv.setLayout (v_layout)
# Skapa timerobjektet och anropa nödvändiga metoder för att visa klockan
timer = QTimer (själv)
timer.Paus.ansluta (själv.showClock)
timer.start (1000)
# Ställ in fönstrets titel
själv.setWindowTitle ("Digital klocka med QTimer")
# Ändra storlek på fönstret
själv.ändra storlek (270, 120)
# Flytta fönstrets position
själv.flytta (800, 400)
# Anropsmetod för att visa tiden
själv.showClock ()
# Visa fönstret
själv.show()
def showClock (själv):
# Läs aktuell tid
Current_Time = QTime.aktuell tid()
# Visa den digitala klockan
själv.lblTimer.setText ('

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

')
# Skapa app-objekt och kör appen
app = QApplication (sys.argv)
vinna = DigitalClock ()
app.exec ()

Följande utgångsfönster visas efter att ovanstående skript har körts.

Slutsats

Datum och tidsvärde för aktuell systemtid kan läsas på olika sätt med hjälp av QTimer-klassen i PyQt-biblioteket. QTimer-klassen användes i denna handledning för att utföra olika exempel på tidsrelaterade skript.

Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...
De bästa Oculus App Lab-spelen
Om du är Oculus-headsetägare måste du vara förtjust i sidoladdning. Sideladdning är processen för att installera icke-butiksinnehåll på ditt headset. ...
Topp 10 spel att spela på Ubuntu
Windows-plattformen har varit en av de dominerande plattformarna för spel på grund av den enorma andelen spel som utvecklas idag för att stödja Window...