Používanie QTimer
Nasledujúce časti poskytujú príklady, ktoré ilustrujú, ako implementovať dve rôzne aplikácie pomocou triedy QTimer.
Príklad 1: Vytvorenie stopiek
Nasledujúci skript implementuje aplikáciu stopiek v Pythone pomocou triedy QTimer. Táto aplikácia bude počítať počet sekúnd a počet minút. Na spustenie, zastavenie, obnovenie a vynulovanie počítadla sa používajú dve tlačidlá. Keď používateľ klikne na ikonu Štart gombík, počítadlo začne počítať a titulok súboru Štart tlačidlo sa zmení na Prestaň. Keď používateľ klikne na ikonu Štart tlačidlo s popisom Prestaň, počítadlo sa dočasne zastaví a titulok Štart tlačidlo sa zmení na Pokračovať pokračovať v počítadle nabudúce. Keď používateľ klikne na ikonu Resetovať tlačidlo, všetky hodnoty počítadla sa inicializujú na 0.
# Importujte potrebné modulyimport sys
z PyQt5.Import QtWidgets *
z PyQt5.Import QtCore *
# Definujte triedu na vytvorenie stopiek
trieda StopWatchWindow (QMainWindow):
def __init __ (self):
# Zavolajte nadradenému konštruktorovi
Super().__init __ ()
# Nastavte názov okna
ja.setWindowTitle ("Zastaviť sledovanie pomocou QTimer")
# Nastavte geometriu okna
ja.setGeometry (100, 100, 300, 200)
# Nastavte potrebné premenné
ja.pult = 0
ja.minúta = '00'
ja.second = '00'
ja.count = '00'
ja.startWatch = False
# Vytvorte štítok na zobrazenie hodiniek
ja.štítok = QLabel (vlastný)
# Nastaviť geometriu štítku
ja.štítok.setGeometry (100, 40, 150, 70)
# Vytvoriť tlačidlo Štart
ja.start = QPushButton ("Štart", sám)
# Nastaviť geometriu na tlačidlo Štart
ja.začať.setGeometry (50, 120, 100, 40)
# Volať metódu start () po kliknutí na tlačidlo Štart
ja.začať.stlačené.spojiť (seba.Štart)
# Vytvoriť resetovacie tlačidlo
resetWatch = QPushButton ("Reset", sám)
# Nastavte geometriu na tlačidlo zastavenia
resetWatch.setGeometry (160, 120, 100, 40)
# Metóda resetovania hovoru () po kliknutí na tlačidlo resetovania
resetWatch.stlačené.spojiť (seba.Resetovať)
# Vytvorte objekt časovača
časovač = QTimer (samostatne)
# Pridajte metódu s časovačom
časovač.čas vypršal.spojiť (seba.showCounter)
# Metóda call start () na úpravu hodnoty časovača
časovač.štart (100)
# Posuňte polohu okna
ja.ťah (900, 400)
# Zobrazte okno
ja.šou()
# Definujte metódu na úpravu hodnôt minút a sekúnd na základe hodnoty časovača
def showCounter (self):
# Skontrolujte hodnotu premennej startWatch, aby ste spustili alebo zastavili Stopky
ak ja.startWatch:
# Počítadlo prírastku o 1
ja.pult + = 1
# Spočítajte a nastavte hodnotu počítadla času
cnt = int ((vlastné.pult / 10 - int (self.počítadlo / 10)) * 10)
ja.count = '0' + str (cnt)
# Nastavte druhú hodnotu
ak int (ja.pult / 10) < 10 :
ja.second = '0' + str (int (vlastné.pult / 10))
inak:
ja.sekunda = str (int (ja.pult / 10))
# Nastavte hodnotu minúty
ak ja.pult / 10 == 60.0:
ja.druhý == '00'
ja.pult = 0
min = int (ja.minúta) + 1
ak min < 10 :
ja.minúta = '0' + str (min)
inak:
ja.minúta = str (min)
# Zlúčte hodnoty mintue, second a count
text = ja.minúta + ':' + ja.second + ':' + self.počítať
# Zobrazte hodnoty stopiek na štítku
ja.štítok.setText ('
„+ text +“
")# Definujte metódu na spracovanie tlačidla Štart
def Štart (vlastné):
# Nastavte titulok tlačidla Štart na základe predchádzajúceho titulku
ak ja.začať.text () == 'Stop':
ja.začať.setText ('Pokračovať')
ja.startWatch = False
inak:
# making startWatch to true
ja.startWatch = Pravda
ja.začať.setText ('Stop')
# Definujte spôsob, ako zaobchádzať s resetovacím tlačidlom
def Reset (vlastné):
ja.startWatch = False
# Obnoviť všetky premenné počítadla
ja.pult = 0
ja.minúta = '00'
ja.second = '00'
ja.count = '00'
# Nastavte počiatočné hodnoty pre stopky
ja.štítok.setText (str (vlastné.pult))
# Vytvorte objekt aplikácie a spustite ju
app = QApplication (sys.argv)
stopWt = StopWatchWindow ()
aplikácia.exec ()
Po vykonaní vyššie uvedeného skriptu sa zobrazí nasledujúce okno.
Stopky začnú pracovať potom, čo používateľ klikne na ikonu Štart tlačidlo.
Počítadlo prestane počítať, keď používateľ klikne na ikonu Prestaň tlačidlo.
Príklad 2: Vytvorenie digitálnych hodín
Nasledujúci skript implementuje digitálne hodiny v Pythone pomocou QTimer trieda. Skript zobrazí digitálne hodiny na štítku tak, že bude každú sekundu čítať aktuálny systémový čas.
# Importujte potrebné modulyimport sys
z PyQt5.QtWidgets importujú QApplication, QWidget, QLabel, QVBoxLayout
z PyQt5.QtCore import QTimer, QTime, Qt
z PyQt5.QtGui import QFont
# Definujte triedu na vytvorenie digitálnych hodín
trieda DigitalClock (QWidget):
def __init __ (self):
Super().__init __ ()
# Vytvorte štítok s písmom a zarovnaním
ja.lblTimer = QLabel ()
font = QFont ('Times', 50)
ja.lblTimer.setFont (písmo)
ja.lblTimer.setAlignment (Qt.AlignCenter)
# Vytvorte objekt vartálneho usporiadania
v_layout = QVBoxLayout ()
v_layout.addWidget (vlastné.lblTimer)
ja.setLayout (v_layout)
# Vytvorte objekt časovača a zavolajte potrebné metódy na zobrazenie hodín
časovač = QTimer (samostatne)
časovač.čas vypršal.spojiť (seba.showClock)
časovač.štart (1 000)
# Nastavte názov okna
ja.setWindowTitle ("Digitálne hodiny pomocou QTimer")
# Zmeňte veľkosť okna
ja.zmeniť veľkosť (270, 120)
# Posuňte polohu okna
ja.ťah (800, 400)
# Metóda volania na zobrazenie času
ja.showClock ()
# Zobrazte okno
ja.šou()
def showClock (vlastné):
# Prečítajte si aktuálny čas
Current_Time = QTime.aktuálny čas()
# Zobrazte digitálne hodiny
ja.lblTimer.setText ('
'+ Current_Time.toString ('hh: mm: ss AP') + '
")# Vytvorte objekt aplikácie a spustite ju
app = QApplication (sys.argv)
výhra = DigitalClock ()
aplikácia.exec ()
Po vykonaní vyššie uvedeného skriptu sa zobrazí nasledujúce výstupné okno.
Záver
Hodnotu dátumu a času aktuálneho systémového času je možné prečítať rôznymi spôsobmi pomocou triedy QTimer knižnice PyQt. Trieda QTimer bola v tomto výučbe použitá na vykonanie rôznych ukážkových skriptov.