„QTimer“ naudojimas
Tolesniuose skyriuose pateikiami pavyzdžiai, iliustruojantys, kaip įgyvendinti dvi skirtingas programas naudojant „QTimer“ klasę.
1 pavyzdys: sukurkite chronometrą
Šis scenarijus įdiegs chronometro programą „Python“ naudodamas „QTimer“ klasę. Ši programa suskaičiuos sekundžių ir minučių skaičių. Skaitiklio paleidimui, sustabdymui, atnaujinimui ir atstatymui naudojami du mygtukai. Kai vartotojas spusteli Pradėti mygtukas, skaitiklis pradės skaičiuoti ir užrašas Pradėti mygtukas bus pakeistas į Sustabdyti. Kai vartotojas spusteli Pradėti mygtukas su antrašte Sustabdyti, skaitiklis laikinai sustos ir užrašas Pradėti mygtukas bus pakeistas į Tęsti tęsti prekystalį kitam kartui. Kai vartotojas spusteli Atstatyti mygtuką, visos skaitiklio reikšmės bus inicializuotos į 0.
# Importuokite būtinus moduliusimportuoti sistemas
iš PyQt5.„QtWidgets“ importavimas *
iš PyQt5.„QtCore“ importavimas *
# Apibrėžkite klasę, kad sukurtumėte chronometrą
klasės „StopWatchWindow“ („QMainWindow“):
def __init __ (savęs):
# Skambinkite pagrindiniam konstruktoriui
super ().__init __ ()
# Nustatykite lango pavadinimą
savarankiškai.setWindowTitle („Stop Watch using QTimer“)
# Nustatykite lango geometriją
savarankiškai.setGeometry (100, 100, 300, 200)
# Nustatykite reikiamus kintamuosius
savarankiškai.skaitiklis = 0
savarankiškai.minutė = „00“
savarankiškai.sekundė = „00“
savarankiškai.skaičius = „00“
savarankiškai.startWatch = klaidingas
# Sukurkite etiketę, kad būtų rodomas laikrodis
savarankiškai.etiketė = QLabel (savarankiškai)
# Nustatykite etiketės geometriją
savarankiškai.etiketė.setGeometry (100, 40, 150, 70)
# Sukurti pradžios mygtuką
savarankiškai.pradžia = QPushButton („Pradėti“, savarankiškai)
# Nustatykite pradžios mygtuko geometriją
savarankiškai.pradžia.setGeometry (50, 120, 100, 40)
# Spustelėkite pradžios mygtuką skambučio pradžios () metodas
savarankiškai.pradžia.prispaustas.prisijungti (savarankiškai.Pradėti)
# Sukurti atstatymo mygtuką
resetWatch = QPushButton („Reset“, savarankiškai)
# Nustatykite geometriją į sustabdymo mygtuką
resetWatch.setGeometry (160, 120, 100, 40)
# Spustelėjus atstatymo mygtuką, skambučių atstatymo () metodas
resetWatch.prispaustas.prisijungti (savarankiškai.Atstatyti)
# Sukurti laikmačio objektą
laikmatis = QTimer (savarankiškai)
# Pridėkite metodą su laikmačiu
laikmatis.laikas baigėsi.prisijungti (savarankiškai.showCounter)
# Skambučio pradžios () metodas, skirtas modifikuoti laikmačio vertę
laikmatis.pradžia (100)
# Perkelkite lango padėtį
savarankiškai.judėti (900, 400)
# Rodyti langą
savarankiškai.Rodyti()
# Apibrėžkite metodą, kaip modifikuoti minučių ir sekundžių reikšmes pagal laikmačio vertę
def showCounter (savęs):
# Patikrinkite „startWatch“ kintamojo vertę, norėdami paleisti arba sustabdyti „Stop Watch“
jei pats.startWatch:
# Prieaugio skaitiklis 1
savarankiškai.skaitiklis + = 1
# Suskaičiuokite ir nustatykite laiko skaitiklio vertę
cnt = int ((savęs.skaitiklis / 10 - int (sav.skaitiklis / 10)) * 10)
savarankiškai.skaičius = '0' + str (cnt)
# Nustatykite antrąją vertę
jei int (savęs.skaitiklis / 10) < 10 :
savarankiškai.sekundė = '0' + str (int (sav.skaitiklis / 10))
Kitas:
savarankiškai.antra = str (int (sav.skaitiklis / 10))
# Nustatykite minutės vertę
jei pats.skaitiklis / 10 == 60.0:
savarankiškai.sekundė == '00'
savarankiškai.skaitiklis = 0
min = int (savęs.minutę) + 1
jei min < 10 :
savarankiškai.minutė = '0' + str (min)
Kitas:
savarankiškai.minutė = str (min)
# Sujunkite kalyklos, antrosios ir skaičiavimo reikšmes
tekstas = savęs.minutė + ':' + savęs.antra + ':' + savęs.suskaičiuoti
# Etiketėje rodykite chronometro vertes
savarankiškai.etiketė.setText ('
„+ tekstas +“
„)# Apibrėžkite pradžios mygtuko tvarkymo būdą
def Pradžia (savarankiškai):
# Nustatykite pradžios mygtuko antraštę pagal ankstesnį antraštę
jei pats.pradžia.tekstas () == „Stop“:
savarankiškai.pradžia.setText ('Atnaujinti')
savarankiškai.startWatch = klaidingas
Kitas:
# padaryti „startWatch“ teisingą
savarankiškai.startWatch = Tiesa
savarankiškai.pradžia.„setText“ („Stop“)
# Apibrėžkite atstatymo mygtuko tvarkymo būdą
def Reset (savarankiškai):
savarankiškai.startWatch = klaidingas
# Atstatykite visus skaitiklio kintamuosius
savarankiškai.skaitiklis = 0
savarankiškai.minutė = „00“
savarankiškai.sekundė = „00“
savarankiškai.skaičius = „00“
# Nustatykite pradines chronometro vertes
savarankiškai.etiketė.setText (str (sav.skaitiklis))
# Sukurkite programos objektą ir paleiskite programą
app = QApplication (sys.argv)
stopWt = StopWatchWindow ()
programa.exec ()
Vykdžius minėtą scenarijų, pasirodys šis langas.
Chronometras pradės veikti vartotojui spustelėjus mygtuką Pradėti mygtuką.
Skaitiklis nustos skaičiuoti, kai vartotojas spustelės Sustabdyti mygtuką.
2 pavyzdys: sukurkite skaitmeninį laikrodį
Šis scenarijus įdiegs „Python“ skaitmeninį laikrodį naudodamas „QTimer“ klasė. Scenarijuje skaitmeninis laikrodis bus rodomas etiketėje, kas sekundę skaitant dabartinį sistemos laiką.
# Importuokite būtinus moduliusimportuoti sistemas
iš PyQt5.„QtWidgets“ importuoja „QApplication“, „QWidget“, „QLabel“, „QVBoxLayout“
iš PyQt5.„QtCore“ importuoti „QTimer“, „QTime“, „Qt“
iš PyQt5.„QtGui“ importas „QFont“
# Apibrėžkite klasę, kad sukurtumėte skaitmeninį laikrodį
klasės „DigitalClock“ („QWidget“):
def __init __ (savęs):
super ().__init __ ()
# Sukurkite etiketę su šriftu ir lygiuote
savarankiškai.lblTimer = QLabel ()
font = QFont ('Times', 50)
savarankiškai.lblTimer.setFont (šriftas)
savarankiškai.lblTimer.setAlignment (Qt.„AlignCenter“)
# Sukurkite vartinio išdėstymo objektą
v_layout = QVBoxLayout ()
v_layout.addWidget (self.lblTimer)
savarankiškai.„setLayout“ („v_layout“)
# Sukurkite laikmačio objektą ir iškvieskite reikiamus metodus, kad būtų rodomas laikrodis
laikmatis = QTimer (savarankiškai)
laikmatis.laikas baigėsi.prisijungti (savarankiškai.showClock)
laikmatis.pradžia (1000)
# Nustatykite lango pavadinimą
savarankiškai.setWindowTitle („Skaitmeninis laikrodis naudojant„ QTimer “)
# Pakeiskite lango dydį
savarankiškai.pakeisti dydį (270, 120)
# Perkelkite lango padėtį
savarankiškai.judėti (800, 400)
# Skambinimo metodas rodyti laiką
savarankiškai.showClock ()
# Rodyti langą
savarankiškai.Rodyti()
def showClock (savarankiškai):
# Perskaitykite dabartinį laiką
Current_Time = QTime.Dabartinis laikas()
# Rodyti skaitmeninį laikrodį
savarankiškai.lblTimer.setText ('
„+ Dabartinis laikas.toString ('hh: mm: ss AP') + '
„)# Sukurkite programos objektą ir paleiskite programą
app = QApplication (sys.argv)
laimėti = „DigitalClock“ ()
programa.exec ()
Vykdžius minėtą scenarijų, pasirodys toks išvesties langas.
Išvada
Dabartinės sistemos laiko datos ir laiko reikšmes galima įvairiai nuskaityti naudojant „PyQt“ bibliotekos „QTimer“ klasę. „QTimer“ klasė buvo naudojama šioje mokymo programoje vykdant įvairius su laiku susijusių scenarijų pavyzdžius.