Použití QTimer
Následující části poskytují příklady, které ilustrují, jak implementovat dvě různé aplikace pomocí třídy QTimer.
Příklad 1: Vytvoření stopek
Následující skript implementuje aplikaci stopek v Pythonu pomocí třídy QTimer. Tato aplikace bude počítat počet sekund a počet minut. Ke spuštění, zastavení, obnovení a vynulování počítadla se používají dvě tlačítka. Když uživatel klikne na Start tlačítko, počítadlo začne počítat a titulek Start tlačítko se změní na Stop. Když uživatel klikne na Start tlačítko s titulkem Stop, počítadlo se dočasně zastaví a titulek Start tlačítko se změní na Životopis pokračovat v počítadle do příště. Když uživatel klikne na Resetovat tlačítko, všechny hodnoty čítače budou inicializovány na 0.
# Importujte potřebné modulyimport sys
z PyQt5.Import QtWidgets *
z PyQt5.QtCore import *
# Definujte třídu pro vytvoření stopek
třída StopWatchWindow (QMainWindow):
def __init __ (vlastní):
# Zavolejte nadřazeného konstruktora
super ().__init __ ()
# Nastavte název okna
já.setWindowTitle ("Stop Watch using QTimer")
# Nastavte geometrii okna
já.setGeometry (100, 100, 300, 200)
# Nastavte potřebné proměnné
já.counter = 0
já.minuta = '00'
já.second = '00'
já.count = '00'
já.startWatch = False
# Vytvořte štítek pro zobrazení hodinek
já.štítek = QLabel (vlastní)
# Nastavit geometrii štítku
já.označení.setGeometry (100, 40, 150, 70)
# Vytvořit tlačítko start
já.start = QPushButton ("Start", vlastní)
# Nastavit geometrii na tlačítko start
já.Start.setGeometry (50, 120, 100, 40)
# Volání metody start () po kliknutí na tlačítko start
já.Start.stisknuto.připojit (já.Start)
# Vytvořit resetovací tlačítko
resetWatch = QPushButton ("Reset", vlastní)
# Nastavte geometrii na tlačítko Stop
resetovat hodinky.setGeometry (160, 120, 100, 40)
# Metoda volání reset () po kliknutí na tlačítko reset
resetovat hodinky.stisknuto.připojit (já.Resetovat)
# Vytvořit objekt časovače
časovač = QTimer (samostatně)
# Přidejte metodu s časovačem
časovač.Časový limit.připojit (já.showCounter)
# Metoda volání start () pro úpravu hodnoty časovače
časovač.start (100)
# Přesuňte polohu okna
já.tah (900, 400)
# Zobrazte okno
já.ukázat()
# Definujte metodu pro úpravu hodnot minut a sekund na základě hodnoty časovače
def showCounter (self):
# Zkontrolujte hodnotu proměnné startWatch, chcete-li spustit nebo zastavit stopky
pokud já.startWatch:
# Počítadlo přírůstku o 1
já.počitadlo + = 1
# Spočítat a nastavit hodnotu počitadla času
cnt = int ((vlastní.counter / 10 - int (self.pult / 10)) * 10)
já.count = '0' + str (cnt)
# Nastavte druhou hodnotu
pokud int (já.pult / 10) < 10 :
já.second = '0' + str (int (self.pult / 10))
jiný:
já.second = str (int (self.pult / 10))
# Nastavte minutovou hodnotu
pokud já.counter / 10 == 60.0:
já.druhý == '00'
já.counter = 0
min = int (já.minuta) + 1
pokud min < 10 :
já.minuta = '0' + str (min)
jiný:
já.minuta = str (min)
# Sloučit hodnoty mintue, second a count
text = já.minuta + ':' + já.second + ':' + self.počet
# Zobrazit hodnoty stopek na štítku
já.označení.setText ('
'+ text +'
')# Definujte metodu zpracování tlačítka Start
def Start (vlastní):
# Nastavte titulek tlačítka start na základě předchozího titulku
pokud já.Start.text () == 'Stop':
já.Start.setText ('Pokračovat')
já.startWatch = False
jiný:
# making startWatch to true
já.startWatch = True
já.Start.setText ('Stop')
# Definujte metodu zpracování tlačítka reset
def Reset (vlastní):
já.startWatch = False
# Resetovat všechny proměnné čítače
já.counter = 0
já.minuta = '00'
já.second = '00'
já.count = '00'
# Nastavte počáteční hodnoty pro stopky
já.označení.setText (str (vlastní.čelit))
# Vytvořte objekt aplikace a spusťte aplikaci
aplikace = QApplication (sys.argv)
stopWt = StopWatchWindow ()
aplikace.exec ()
Po provedení výše uvedeného skriptu se zobrazí následující okno.
Stopky začnou fungovat poté, co uživatel klikne na ikonu Start knoflík.
Počítadlo přestane počítat poté, co uživatel klikne na Stop knoflík.
Příklad 2: Vytvoření digitálních hodin
Následující skript implementuje digitální hodiny v Pythonu pomocí QTimer třída. Skript zobrazí digitální hodiny na štítku čtením aktuálního systémového času jednou za sekundu.
# Importujte potřebné modulyimport sys
z PyQt5.QtWidgets importují QApplication, QWidget, QLabel, QVBoxLayout
z PyQt5.QtCore import QTimer, QTime, Qt
z PyQt5.QtGui import QFont
# Definujte třídu pro vytvoření digitálních hodin
třída DigitalClock (QWidget):
def __init __ (vlastní):
super ().__init __ ()
# Vytvořte štítek s písmem a zarovnáním
já.lblTimer = QLabel ()
font = QFont ('Times', 50)
já.lblTimer.setFont (písmo)
já.lblTimer.setAlignment (Qt.AlignCenter)
# Vytvořte objekt grafického rozvržení
v_layout = QVBoxLayout ()
v_layout.addWidget (vlastní.lblTimer)
já.setLayout (v_layout)
# Vytvořte objekt časovače a zavolejte potřebné metody pro zobrazení hodin
časovač = QTimer (samostatně)
časovač.Časový limit.připojit (já.showClock)
časovač.start (1000)
# Nastavte název okna
já.setWindowTitle ("Digitální hodiny pomocí QTimer")
# Změňte velikost okna
já.změnit velikost (270, 120)
# Přesuňte polohu okna
já.tah (800, 400)
# Metoda volání pro zobrazení času
já.showClock ()
# Zobrazte okno
já.ukázat()
def showClock (vlastní):
# Přečtěte si aktuální čas
Current_Time = QTime.aktuální čas()
# Zobrazte digitální hodiny
já.lblTimer.setText ('
'+ Current_Time.toString ('hh: mm: ss AP') + '
')# Vytvořte objekt aplikace a spusťte aplikaci
aplikace = QApplication (sys.argv)
win = DigitalClock ()
aplikace.exec ()
Po provedení výše uvedeného skriptu se zobrazí následující výstupní okno.
Závěr
Hodnotu data a času aktuálního systémového času lze číst různými způsoby pomocí třídy QTimer v knihovně PyQt. Třída QTimer byla v tomto kurzu použita k provedení různých ukázkových skriptů souvisejících s časem.