„Python“

Kaip naudotis PyQt QTimer

Kaip naudotis PyQt QTimer
„PyQt“ bibliotekos „QTimer“ klasė leidžia vartotojams sukurti skaitmeninį laikrodį, laiko skaitiklį, eigos juostą ir kt. Ši klasė naudojama norint sukurti įprastą laikmatį, kuris išsiunčia signalą, kai laikmatis suveikia, ir jis paveldi iš QObject klasė. Tikslas „QTimer“ klasė sukurta kaip valdiklio vaikas. Kai valdiklis ištrina, laikmatis taip pat ištrina. The „QTimer“ klasė teikia statinę funkciją, vadinamą „singleShot“ () kuri gali būti naudojama paskambinti funkcijai po tam tikro laikotarpio. Ši pamoka parodo, kaip naudoti „QTimer“ klasę kurti su laiku susijusias PyQt programas.

„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 modulius
importuoti 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 modulius
importuoti 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.

„WinMouse“ leidžia tinkinti ir pagerinti pelės žymeklio judėjimą „Windows“ kompiuteryje
Jei norite pagerinti numatytąsias pelės žymiklio funkcijas, naudokite nemokamą programinę įrangą „WinMouse“. Tai prideda daugiau funkcijų, kurios padė...
Pelės kairiuoju pelės mygtuku mygtukas neveikia „Windows 10“
Jei naudojate specialią pelę su savo nešiojamuoju kompiuteriu arba staliniu kompiuteriu, tačiau neveikia pelės kairysis mygtukas dėl tam tikrų priežas...
Žymeklis peršoka arba juda atsitiktinai, kai rašote „Windows 10“
Jei pastebite, kad pelės žymeklis peršoka arba juda pats, automatiškai, atsitiktinai, kai vedate „Windows“ nešiojamąjį kompiuterį ar kompiuterį, kai k...