Python

So verwenden Sie PyQt QTimer

So verwenden Sie PyQt QTimer
Die QTimer-Klasse der PyQt-Bibliothek ermöglicht es Benutzern, eine Digitaluhr, einen Zeitzähler, einen Fortschrittsbalken und mehr zu erstellen. Diese Klasse wird verwendet, um einen regulären Timer zu erstellen, der ein Signal aussendet, wenn der Timer ausgelöst wird, und er erbt vom QObjekt Klasse. Das Objekt der QTimer Klasse wird als Kind eines Widgets erstellt. Wenn das Widget gelöscht wird, wird auch das Timer-Objekt gelöscht. Das QTimer Klasse bietet eine statische Funktion namens einzelner Schuss() die verwendet werden kann, um eine Funktion nach einer bestimmten Zeit aufzurufen. Dieses Tutorial zeigt Ihnen, wie Sie die QTimer Klasse, um zeitbezogene PyQt-Anwendungen zu erstellen.

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 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 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 importieren
Importsystem
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.

Open-Source-Ports kommerzieller Spiele-Engines
Kostenlose, quelloffene und plattformübergreifende Spiel-Engine-Nachbildungen können verwendet werden, um sowohl alte als auch einige der relativ neue...
Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...
Beste Gamepad-Mapping-Apps für Linux
Wenn du Spiele unter Linux gerne mit einem Gamepad statt mit einem typischen Tastatur- und Maus-Eingabesystem spielst, gibt es einige nützliche Apps f...