QTimer-Nutzung
Die folgenden Abschnitte enthalten Beispiele, die veranschaulichen, wie zwei verschiedene Anwendungen mit der QTimer-Klasse implementiert werden.
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 dienen zum Starten, Stoppen, Fortsetzen und Zurücksetzen des Zählers used. Wenn der Benutzer auf das klickt Start Taste, der Zähler beginnt zu zählen und die Beschriftung des Start Schaltfläche wird geändert zu Halt. Wenn der Benutzer auf das klickt Start Schaltfläche mit der Beschriftung Halt, der Zähler wird vorübergehend angehalten und die Beschriftung des Start Schaltfläche wird geändert zu Fortsetzen um den Zähler zum nächsten Mal fortzusetzen. Wenn der Benutzer auf das klickt Zurücksetzen Taste werden alle Werte des Zählers auf 0 initialisiert.
# Erforderliche Module importierenImportsystem
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 auf
Super().__drin__()
# Setzt den Titel des Fensters
selbst.setWindowTitle("Stoppuhr mit QTimer")
# Legen Sie die Geometrie für das Fenster fest
selbst.setGeometrie(100, 100, 300, 200)
# Legen Sie die erforderlichen Variablen fest
selbst.Zähler = 0
selbst.Minute = '00'
selbst.Sekunde = '00'
selbst.zählen = '00'
selbst.startWatch = Falsch
# Label erstellen, um die Uhr anzuzeigen
selbst.Etikett = QLabel(selbst)
# Geometrie für das Etikett festlegen
selbst.Etikette.setGeometry(100, 40, 150, 70)
# Startbutton erstellen
selbst.start = QPushButton("Start", selbst)
# Geometrie auf den Startknopf setzen
selbst.Start.setGeometrie(50, 120, 100, 40)
# Rufen Sie die start()-Methode auf, wenn auf die Startschaltfläche geklickt wird
selbst.Start.gedrückt.verbinden (selbst.Start)
# Reset-Button erstellen
resetWatch = QPushButton("Reset", selbst)
# Geometrie auf die Stopptaste setzen
zurücksetzenUhr.setGeometry(160, 120, 100, 40)
# Methode reset() aufrufen, wenn die Reset-Schaltfläche angeklickt wird
zurücksetzenUhr.gedrückt.verbinden (selbst.Zurücksetzen)
# Timer-Objekt erstellen
Timer = QTimer (selbst)
# Eine Methode mit dem Timer hinzufügen
Timer.Auszeit.verbinden (selbst.showCounter)
# Rufen Sie die Methode start() auf, um den Timerwert zu ändern
Timer.starten(100)
# Verschieben Sie die Position des Fensters
selbst.bewegen (900, 400)
# Das Fenster anzeigen
selbst.Show()
# Definieren Sie eine Methode, um die Werte von Minuten und Sekunden basierend auf dem Timer-Wert zu ändern
def showCounter(selbst):
# Überprüfen Sie den Wert der Variablen startWatch, um die Stoppuhr zu starten oder zu stoppen start
wenn selbst.startwatch:
# Zähler um 1 . erhöhen
selbst.Zähler += 1
# Zählen und den Zeitzählerwert einstellen
cnt = int((selbst.counter/10 - int(self.Zähler/10))*10)
selbst.count = '0' + str(cnt)
# Setzt den zweiten Wert
if int(selbst.Zähler/10) < 10 :
selbst.zweite = '0' + str(int(self.Zähler / 10))
sonst:
selbst.zweite = str(int(self.Zähler / 10))
# Stellen Sie den Minutenwert ein
wenn selbst.Zähler / 10 == 60.0 :
selbst.zweite == '00'
selbst.Zähler = 0
min = int(selbst.Minute) + 1
wenn min < 10 :
selbst.Minute = '0' + Str(min)
sonst:
selbst.Minute = Str(min)
# Zusammenführen der Minuten-, Sekunden- und Zählwerte
text = selbst.Minute + ':' + selbst.Sekunde + ':' + selbst.Anzahl
# Zeigen Sie die Stoppuhrwerte im Etikett an
selbst.Etikette.Text setzen('
' + Text + '
')# Methode zur Handhabung des Startknopfes definieren
def Start(selbst):
# Legen Sie die Beschriftung der Startschaltfläche basierend auf der vorherigen Beschriftung fest
wenn selbst.Start.text() == 'Stopp':
selbst.Start.setText('Resume')
selbst.startWatch = Falsch
sonst:
# startWatch wahr machen
selbst.startWatch = True
selbst.Start.setText('Stopp')
# Methode zum Umgang mit der Reset-Taste definieren
def Reset(selbst):
selbst.startWatch = Falsch
# Alle Zählervariablen zurücksetzen
selbst.Zähler = 0
selbst.Minute = '00'
selbst.Sekunde = '00'
selbst.zählen = '00'
# Stellen Sie die Anfangswerte für die Stoppuhr ein
selbst.Etikette.setText(str(self.Zähler))
# App-Objekt erstellen und App ausführen
app = QApplication(sys.Argument)
stopWt = StopWatchWindow()
App.exec()
Das folgende Fenster erscheint, nachdem das obige Skript ausgeführt wurde.
Die Stoppuhr beginnt zu arbeiten, nachdem der Benutzer auf klickt Start Taste.
Der Zähler hört auf zu zählen, nachdem der Benutzer auf geklickt hat Halt Taste.
Beispiel 2: Erstellen einer Digitaluhr
Das folgende Skript implementiert eine digitale Uhr in Python unter Verwendung der QTimer Klasse. Das Skript zeigt die Digitaluhr in einem Etikett an, indem es die aktuelle Systemzeit einmal pro Sekunde liest.
# Erforderliche Module importierenImportsystem
von PyQt5.QtWidgets importieren QApplication, QWidget, QLabel, QVBoxLayout
von PyQt5.QtCore-Import QTimer, QTime, Qt
von PyQt5.QtGui-Import von QFont
# Klasse definieren, um die Digitaluhr 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.SetAlignment(Qt.Im Zentrum anordnen)
# Erstellen Sie das vertikale Layoutobjekt
v_layout = QVBoxLayout()
v_layout.addWidget(selbst.lblTimer)
selbst.setLayout(v_layout)
# Erstellen Sie das Timer-Objekt und rufen Sie die erforderlichen Methoden auf, um die Uhr anzuzeigen
Timer = QTimer (selbst)
Timer.Auszeit.verbinden (selbst.Uhr anzeigen)
Timer.Anfang(1000)
# Setzt den Titel des Fensters
selbst.setWindowTitle("Digitaluhr mit QTimer")
# Größe des Fensters ändern
selbst.Größe ändern(270, 120)
# Verschieben Sie die Position des Fensters
selbst.bewegen (800, 400)
# Aufrufmethode zum Anzeigen der Uhrzeit
selbst.showClock()
# Das Fenster anzeigen
selbst.Show()
def showClock(selbst):
# Lesen Sie die aktuelle Uhrzeit
Aktuelle_Zeit = QTime.aktuelle Uhrzeit()
# Zeigen Sie die Digitaluhr an
selbst.lblTimer.Text setzen('
' + Aktuelle_Zeit.toString('hh:mm:ss AP') + '
')# App-Objekt erstellen und App ausführen
app = QApplication(sys.Argument)
win = DigitalClock()
App.exec()
Das folgende Ausgabefenster erscheint, nachdem das obige Skript ausgeführt wurde.
Fazit
Der Datums- und Zeitwert der aktuellen Systemzeit kann auf verschiedene Weise mit der QTimer-Klasse der PyQt-Bibliothek gelesen werden. Die Klasse QTimer wurde in diesem Tutorial verwendet, um verschiedene zeitbezogene Beispielskripte auszuführen.