So verwenden Sie Pyqt Qtimer

So verwenden Sie Pyqt Qtimer
Mit der Qtimer -Klasse der PYQT -Bibliothek können Benutzer eine digitale Uhr, eine Zeitzählung, eine Fortschrittsleiste und mehr erstellen. Diese Klasse wird verwendet, um einen regulären Timer zu erstellen, der ein Signal aussendet Qobject Klasse. Das Objekt der Qtimer Klasse wird als Kind eines Widgets erstellt. Wenn das Widget löscht, löscht das Timer -Objekt auch. Der Qtimer Die Klasse bietet eine statische Funktion genannt einzelner Schuss() Dies kann verwendet werden, um nach einem bestimmten Zeitraum eine Funktion aufzurufen. Dieses Tutorial zeigt Ihnen, wie Sie die verwenden Qtimer Klasse zum Erstellen zeitbezogener PYQT-Anwendungen.

Qtimer Verwendung

In den folgenden Abschnitten werden Beispiele angezeigt, die veranschaulichen.

Beispiel 1: Erstellen Sie eine Stoppuhr

Das folgende Skript implementiert eine Stoppuhr -Anwendung in Python mit der QTimer -Klasse. Diese Anwendung zählt die Anzahl der Sekunden und die Anzahl der Minuten. Zwei Tasten werden verwendet, um den Zähler zu starten, anzuhalten, wieder aufzunehmen und zurückzusetzen. Wenn der Benutzer auf das klickt Start Taste, der Zähler beginnt zu zählen und die Bildunterschrift der Start Die Schaltfläche wird auf geändert Stoppen. Wenn der Benutzer auf das klickt Start Taste mit der Beschriftung Stoppen, Der Zähler wird vorübergehend aufhören und die Überschrift der Start Die Schaltfläche wird auf geändert Fortsetzen den Schalter zum nächsten Mal fortzusetzen. Wenn der Benutzer auf das klickt Zurücksetzen Taste werden alle Werte des Zählers auf 0 initialisiert.

# Notwendige Module importieren
Importsystem
von pyqt5.Qtwidgets import *
von pyqt5.Qtcore Import *
# Klasse definieren, um die Stoppuhr zu erstellen
Klasse StopwatchWindow (Qmainwindow):
def __init __ (selbst):
# Rufen Sie den übergeordneten Konstruktor an
super().__drin__()
# Setzen Sie den Titel des Fensters
selbst.setWindowtitle ("STOP WATCH UNTER VERWENDUNG QTIMER")
# Legen Sie die Geometrie für das Fenster ein
selbst.Setgeometrie (100, 100, 300, 200)
# Legen Sie die erforderlichen Variablen ein
selbst.Zähler = 0
selbst.Minute = '00'
selbst.zweite = '00'
selbst.count = '00'
selbst.startWatch = false
# Etikett erstellen, um die Uhr anzuzeigen
selbst.label = qlabel (self)
# Geometrie für das Etikett setzen
selbst.Etikett.SetGeometrie (100, 40, 150, 70)
# Startschaltfläche erstellen
selbst.start = qpushbutton ("start", self)
# Die Geometrie auf die Startschaltfläche setzen
selbst.Start.setGeometry (50, 120, 100, 40)
# Rufstart () -Methode, wenn die Startschaltfläche klickt
selbst.Start.gedrückt.verbinden (Selbst.Start)
# Schaltfläche Reset Reset erstellen
Resetwatch = qpushbutton ("Reset", Selbst)
# Die Geometrie auf die Stopptaste setzen
Zurücksetzen.Setgeometrie (160, 120, 100, 40)
# Reset reset () Methode, wenn die Schaltfläche Reset aufgerufen wird
Zurücksetzen.gedrückt.verbinden (Selbst.Zurücksetzen)
# Timer -Objekt erstellen
Timer = qtimer (Selbst)
# Mit dem Timer eine Methode hinzufügen
Timer.Auszeit.verbinden (Selbst.Showcounter)
# Anrufstart () -Methode zum Ändern des Timerwerts
Timer.Start (100)
# Bewegen Sie die Position des Fensters
selbst.Umzug (900, 400)
# Zeigen Sie das Fenster an
selbst.zeigen()
# Definieren Sie eine Methode, um die Werte von Minuten und Sekunden basierend auf dem Timerwert zu ändern
Def Showcounter (Selbst):
# Überprüfen Sie den Wert der Startwatch -Variablen, um die Stop -Uhr zu starten oder zu stoppen
Wenn Selbst.StartWatch:
# Inkrementzähler um 1
selbst.Zähler += 1
# Zählen Sie und setzen Sie den Zeitzählerwert
cnt = int ((Selbst.Zähler/10 - int (Selbst.Zähler/10))*10)
selbst.count = '0' + str (cnt)
# Setzen Sie den zweiten Wert
Wenn int (Selbst.Zähler/10) < 10 :
selbst.Sekunde = '0' + str (int (self.Zähler / 10))
anders:
selbst.zweite = str (int (self.Zähler / 10))
# Setzen Sie den Minutenwert
Wenn Selbst.Zähler / 10 == 60.0:
selbst.Zweite == '00'
selbst.Zähler = 0
min = int (self.Minute) + 1
Wenn min < 10 :
selbst.Minute = '0' + str (min)
anders:
selbst.Minute = str (min)
# Fucken Sie die windigen, zweiten und zählenden Werte zusammen
text = self.Minute + ':' + Selbst.Zweiter + ':' + Selbst.zählen
# Zeigen Sie die Stop -Watch -Werte im Etikett an
selbst.Etikett.Text setzen('

' + text +' '

'))
# Definieren Sie die Methode, um die Startschaltfläche zu verarbeiten
def start (selbst):
# Stellen Sie die Bildunterschrift der Startschaltfläche basierend auf der vorherigen Beschriftung ein
Wenn Selbst.Start.text () == 'stop':
selbst.Start.setText ('Lebenslauf')
selbst.startWatch = false
anders:
# Startwatch auf wahr machen
selbst.startWatch = true
selbst.Start.setText ('stop')
# Definieren Sie die Methode, um die Reset -Taste zu verarbeiten
Def Reset (Selbst):
selbst.startWatch = false
# Alle Gegenvariablen zurücksetzen
selbst.Zähler = 0
selbst.Minute = '00'
selbst.zweite = '00'
selbst.count = '00'
# Legen Sie die Anfangswerte für die Stop Watch ein
selbst.Etikett.setText (STR (Selbst.Schalter))
# App -Objekt erstellen und die App ausführen
app = qapplication (sys.argv)
STOPWT = STOPWATCHWINDOW ()
App.exec ()

Das folgende Fenster wird angezeigt, nachdem das obige Skript ausgeführt wurde.

Die Stoppuhr wird arbeiten, nachdem der Benutzer auf die Klicks auf die Start Taste.

Der Zähler hört auf zu zählen, nachdem der Benutzer auf die Klicks auf die Stoppen Taste.

Beispiel 2: Erstellen einer digitalen Uhr

Das folgende Skript implementiert eine digitale Uhr in Python mit der Qtimer Klasse. Das Skript zeigt die digitale Uhr in einer Etikett an, indem die aktuelle Systemzeit jede Sekunde einmal gelesen wird.

# Notwendige Module importieren
Importsystem
von pyqt5.Qtwidgets importieren Qapplication, Qwidget, Qlabel, QvboxLayout
von pyqt5.Qtcore import qtimer, qtime, qt
von pyqt5.Qtgui import qfont
# Klasse definieren, um die digitale Uhr zu erstellen
Klasse DigitalClock (Qwidget):
def __init __ (selbst):
super().__drin__()
# Erstellen Sie ein Etikett mit Schriftart und Ausrichtung
selbst.LBLTIMER = qlabel ()
font = qfont ('Times', 50)
selbst.LBLTIMER.setfont (Schriftart)
selbst.LBLTIMER.setAnignment (qt.Im Zentrum anordnen)
# Erstellen Sie das vartische Layout -Objekt
v_layout = qvboxLayout ()
v_layout.AddWidget (Selbst.LBLTIMER)
selbst.setLayout (v_layout)
# Erstellen Sie das Timer -Objekt und rufen Sie die erforderlichen Methoden zur Anzeige der Uhr auf
Timer = qtimer (Selbst)
Timer.Auszeit.verbinden (Selbst.Showclock)
Timer.Start (1000)
# Setzen Sie den Titel des Fensters
selbst.setWindowtitle ("Digitale Uhr mit qtimer")
# Die Größe des Fensters ändern
selbst.Größenänderung (270, 120)
# Bewegen Sie die Position des Fensters
selbst.Umzug (800, 400)
# Aufrufmethode, um die Zeit anzuzeigen
selbst.Showclock ()
# Zeigen Sie das Fenster an
selbst.zeigen()
Def Showclock (Selbst):
# Lesen Sie die aktuelle Zeit
Current_time = qTime.aktuelle Uhrzeit()
# Zeigen Sie die digitale Uhr an
selbst.LBLTIMER.Text setzen('

' + Current_time.toString ('HH: MM: SS AP') + '

'))
# App -Objekt erstellen und die App ausführen
app = qapplication (sys.argv)
win = digitalClock ()
App.exec ()

Das folgende Ausgabefenster wird angezeigt, nachdem das obige Skript ausgeführt wurde.

Abschluss

Der Datum und der Uhrwert der aktuellen Systemzeit können auf verschiedene Weise unter Verwendung der Qtimer -Klasse der PYQT -Bibliothek gelesen werden. Die QTIMER-Klasse wurde in diesem Tutorial verwendet, um verschiedene zeitbezogene Skripte auszuführen.