Jak korzystać z Pyqt Qtimer

Jak korzystać z Pyqt Qtimer
Klasa QTimer biblioteki PYQT pozwala użytkownikom utworzyć zegar cyfrowy, licznik czasu, pasek postępu i więcej. Ta klasa służy do utworzenia zwykłego timera, który wysyła sygnał, gdy licznik czasu odpala i dziedziczy po Qobject klasa. Obiekt Qtimer klasa jest tworzona jako dziecko widżetu. Gdy widżet usuwa, obiekt timera również usuwa. Qtimer klasa zapewnia funkcję statyczną zwaną pojedynczy strzał() które można użyć do wywołania funkcji po określonym okresie. Ten samouczek pokazuje, jak korzystać z Qtimer klasa do tworzenia aplikacji PYQT związanych z czasem.

Korzystanie QTimer

Poniższe sekcje zawierają przykłady, które ilustrują, jak wdrożyć dwie różne aplikacje za pomocą klasy QTimer.

Przykład 1: Utwórz stoper

Poniższy skrypt zaimplementuje aplikację StopWatch w Python za pomocą klasy QTimer. Ta aplikacja będzie liczyć liczbę sekund i liczbę minut. Dwa przyciski służą do uruchamiania, zatrzymania, wznowienia i zresetowania licznika. Gdy użytkownik kliknie Początek przycisk, licznik zacznie się liczyć, a podpis Początek przycisk zostanie zmieniony na Zatrzymywać się. Gdy użytkownik kliknie Początek przycisk z podpisem Zatrzymywać się, licznik zatrzyma się tymczasowo, a podpis Początek przycisk zostanie zmieniony na Wznawiać Aby kontynuować kontrakt do następnego razu. Gdy użytkownik kliknie Resetowanie przycisk, wszystkie wartości licznika zostaną zainicjowane do 0.

# Zaimportuj niezbędne moduły
Import Sys
z pyqt5.Qtwidgets import *
z pyqt5.Qtcore import *
# Zdefiniuj klasę, aby utworzyć zegarek stop
klasa StopWatchWindow (QMainWindow):
def __init __ (ja):
# Zadzwoń do konstruktora nadrzędnego
Super().__w tym__()
# Ustaw tytuł okna
samego siebie.setWindowTitle („przestań obserwować za pomocą qtimer”)
# Ustaw geometrię dla okna
samego siebie.Setgeometria (100, 100, 300, 200)
# Ustaw niezbędne zmienne
samego siebie.licznik = 0
samego siebie.minute = '00'
samego siebie.Second = '00'
samego siebie.Count = '00'
samego siebie.Startwatch = false
# Utwórz etykietę, aby wyświetlić zegarek
samego siebie.etykieta = qlabel (self)
# Ustaw geometrię etykiety
samego siebie.etykieta.Setgeometria (100, 40, 150, 70)
# Utwórz przycisk Start
samego siebie.start = qpushbutton („start”, self)
# Ustaw geometrię na przycisk Start
samego siebie.początek.Setgeometria (50, 120, 100, 40)
# Metoda wywołania start () po kliknięciu przycisku start
samego siebie.początek.prasowany.Połącz (ja.Początek)
# Utwórz przycisk resetowania
RESETWATCH = QPUSHBUTTON („RESET”, Self)
# Ustaw geometrię na przycisk Stop
ResetWatch.Setgeometria (160, 120, 100, 40)
# Metoda reset () po kliknięciu przycisku resetowania
ResetWatch.prasowany.Połącz (ja.Resetowanie)
# Utwórz obiekt timera
timer = qtimer (self)
# Dodaj metodę z timerem
regulator czasowy.koniec czasu.Połącz (ja.prezenter)
# Metoda call start () do modyfikacji wartości timera
regulator czasowy.Start (100)
# Przenieś pozycję okna
samego siebie.ruch (900, 400)
# Wyświetl okno
samego siebie.pokazywać()
# Zdefiniuj metodę modyfikacji wartości minut i sekund na podstawie wartości timera
def Showcounter (ja):
# Sprawdź wartość zmiennej Startwatch, aby uruchomić lub zatrzymać zegarek stop
Jeśli ja.Startwatch:
# Licznik przyrostowy o 1
samego siebie.licznik += 1
# Policz i ustaw wartość licznika czasu
cnt = int (jaźń.Counter/10 - int (jaźń.licznik/10))*10)
samego siebie.count = '0' + str (cnt)
# Ustaw drugą wartość
Jeśli int (jaźń.licznik/10) < 10 :
samego siebie.second = '0' + str (int (jaźń.licznik / 10))
w przeciwnym razie:
samego siebie.Second = Str (int (jaźń.licznik / 10))
# Ustaw wartość minutową
Jeśli ja.licznik / 10 == 60.0:
samego siebie.Second == '00'
samego siebie.licznik = 0
min = int (jaźń.minuta) + 1
Jeśli min < 10 :
samego siebie.minute = '0' + str (min)
w przeciwnym razie:
samego siebie.Minute = Str (min)
# Scal menTue, drugie i zliczają wartości
tekst = jaźń.Minute + ':' + self.Second + ':' + self.liczyć
# Wyświetl wartości Stop Watch na etykiecie
samego siebie.etykieta.Ustaw tekst('

„ + tekst +”

')
# Zdefiniuj metodę obsługi przycisku Start
def start (self):
# Ustaw podpis przycisku Start na podstawie poprzedniego podpisu
Jeśli ja.początek.text () == „Stop”:
samego siebie.początek.setText („CV”)
samego siebie.Startwatch = false
w przeciwnym razie:
# Startwatch do true
samego siebie.Startwatch = true
samego siebie.początek.setText („Stop”)
# Zdefiniuj metodę obsługi przycisku resetowania
def Reset (ja):
samego siebie.Startwatch = false
# Zresetuj wszystkie zmienne licznika
samego siebie.licznik = 0
samego siebie.minute = '00'
samego siebie.Second = '00'
samego siebie.Count = '00'
# Ustaw wartości początkowe dla zegarek stop
samego siebie.etykieta.setText (str (self.lada))
# Utwórz obiekt aplikacji i uruchom aplikację
app = qapplication (sys.Argv)
stopwt = stopwatchWindow ()
App.exec ()

Poniższe okno pojawi się po wykonaniu powyższego skryptu.

Stopwatch zacznie działać po kliknięciu użytkownika Początek przycisk.

Licznik przestanie liczyć po kliknięciu użytkownika Zatrzymywać się przycisk.

Przykład 2: Utwórz zegar cyfrowy

Poniższy skrypt zaimplementuje zegar cyfrowy w Python za pomocą Qtimer klasa. Skrypt wyświetli cyfrowy zegar w etykiecie, czytając bieżący czas raz na sekundę.

# Zaimportuj niezbędne moduły
Import Sys
z pyqt5.QTWidgets Import Qapplication, QWidget, QLabel, Qvboxlayout
z pyqt5.QTCORE Import Qtimer, QTime, QT
z pyqt5.QTGUI Import Qfont
# Zdefiniuj klasę, aby utworzyć zegar cyfrowy
klasa DigitalClock (QWidget):
def __init __ (ja):
Super().__w tym__()
# Utwórz etykietę z czcionką i wyrównaniem
samego siebie.lbltimer = qlabel ()
czcionka = qfont („Times”, 50)
samego siebie.lbltimer.setFont (czcionka)
samego siebie.lbltimer.SetaInignment (Qt.Wyrównany)
# Utwórz obiekt układu Vartical
v_layout = qvboxlayout ()
v_layout.AddWidget (ja.lbltimer)
samego siebie.setlayout (v_layout)
# Utwórz obiekt timera i wywołać niezbędne metody wyświetlania zegara
timer = qtimer (self)
regulator czasowy.koniec czasu.Połącz (ja.showclock)
regulator czasowy.Start (1000)
# Ustaw tytuł okna
samego siebie.setWindowTitle („Cyfrowy zegar za pomocą qtimer”)
# Zmień rozmiar okna
samego siebie.Zmień rozmiar (270, 120)
# Przenieś pozycję okna
samego siebie.ruch (800, 400)
# Metoda wywołania wyświetlania czasu
samego siebie.showclock ()
# Wyświetl okno
samego siebie.pokazywać()
def Showclock (ja):
# Przeczytaj aktualny czas
Current_time = qtime.Obecny czas()
# Wyświetl zegar cyfrowy
samego siebie.lbltimer.Ustaw tekst('

' + Current_time.ToString („HH: MM: ss ap”) + '

')
# Utwórz obiekt aplikacji i uruchom aplikację
app = qapplication (sys.Argv)
Win = DigitalClock ()
App.exec ()

Następujące okno wyjściowe pojawi się po wykonaniu powyższego skryptu.

Wniosek

Datę i godzinę bieżącego czasu systemu można odczytać na różne sposoby za pomocą klasy QTimer biblioteki PYQT. Klasa QTimer została użyta w tym samouczku do wykonania różnych przykładowych skryptów związanych z czasem.