Krajta

Jak používat PyQt QTimer

Jak používat PyQt QTimer
Třída QTimer knihovny PyQt umožňuje uživatelům vytvářet digitální hodiny, počítadlo času, ukazatel průběhu a další. Tato třída se používá k vytvoření pravidelného časovače, který vysílá signál, když se časovač spustí, a dědí z QObject třída. Objekt QTimer třída je vytvořena jako podřízený widget. Když se widget odstraní, odstraní se také objekt časovače. The QTimer třída poskytuje statickou funkci nazvanou jediný výstřel() které lze použít k volání funkce po určitém období. Tento výukový program vám ukáže, jak používat QTimer třídy k vytváření časově souvisejících aplikací PyQt.

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é moduly
import 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é moduly
import 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.

Jak obrátit směr posouvání myši a touchpadu ve Windows 10
Myš a Touchpadnejenže usnadňují výpočet, ale jsou efektivnější a méně časově náročné. Nemůžeme si představit život bez těchto zařízení, ale přesto je ...
Jak změnit velikost, barvu a schéma kurzoru myši a kurzoru v systému Windows 10
Ukazatel myši a kurzor ve Windows 10 jsou velmi důležité aspekty operačního systému. To lze říci i pro jiné operační systémy, takže ve skutečnosti nej...
Hry Zdarma a open source herní motory pro vývoj linuxových her
Zdarma a open source herní motory pro vývoj linuxových her
Tento článek pokryje seznam bezplatných a otevřených herních enginů, které lze použít pro vývoj 2D a 3D her v systému Linux. Existuje mnoho takových h...