Penggunaan QTimer
Bahagian berikut memberikan contoh yang menggambarkan bagaimana melaksanakan dua aplikasi yang berbeza menggunakan kelas QTimer.
Contoh 1: Buat Jam Randik
Skrip berikut akan melaksanakan aplikasi jam randik di Python menggunakan kelas QTimer. Aplikasi ini akan mengira bilangan detik dan bilangan minit. Dua butang digunakan untuk memulakan, menghentikan, menyambung semula, dan menetapkan semula kaunter. Apabila pengguna mengklik Mulakan butang, kaunter akan mula mengira, dan kapsyen Mulakan butang akan ditukar menjadi Berhenti. Apabila pengguna mengklik Mulakan butang dengan kapsyen Berhenti, kaunter akan berhenti sementara, dan kapsyen Mulakan butang akan ditukar menjadi Sambung semula untuk meneruskan kaunter ke lain kali. Apabila pengguna mengklik Tetapkan semula butang, semua nilai kaunter akan dimulakan ke 0.
# Import modul yang diperlukanimport sys
dari PyQt5.Import QtWidgets *
dari PyQt5.Import QtCore *
# Tentukan kelas untuk membuat jam tangan
kelas StopWatchWindow (QMainWindow):
def __init __ (diri):
# Panggil pembina ibu bapa
super ().__di dalamnya__()
# Tetapkan tajuk tetingkap
diri.setWindowTitle ("Berhenti Menonton menggunakan QTimer")
# Tetapkan geometri untuk tetingkap
diri.setGeometri (100, 100, 300, 200)
# Tetapkan pemboleh ubah yang diperlukan
diri.pembilang = 0
diri.minit = '00'
diri.kedua = '00'
diri.kiraan = '00'
diri.startWatch = Salah
# Buat label untuk memaparkan jam tangan
diri.label = QLabel (diri)
# Tetapkan geometri untuk label
diri.label.setGeometry (100, 40, 150, 70)
# Buat butang mula
diri.start = QPushButton ("Mula", diri)
# Tetapkan geometri ke butang mula
diri.mulakan.setGeometri (50, 120, 100, 40)
Kaedah # Call call () apabila butang mula diklik
diri.mulakan.ditekan.menyambung (diri.Mula)
# Buat butang set semula
resetWatch = QPushButton ("Reset", diri)
# Tetapkan geometri ke butang berhenti
tetapkan semulaWatch.setGeometri (160, 120, 100, 40)
# Kaedah panggilan semula () apabila butang set semula diklik
tetapkan semulaWatch.ditekan.menyambung (diri.Tetapkan semula)
# Buat objek pemasa
pemasa = QTimer (diri)
# Tambahkan kaedah dengan pemasa
pemasa.masa tamat.menyambung (diri.kaunter persembahan)
# Mula panggilan () kaedah untuk mengubah nilai pemasa
pemasa.bermula (100)
# Gerakkan kedudukan tingkap
diri.bergerak (900, 400)
# Paparkan tingkap
diri.tunjuk ()
# Tentukan kaedah untuk mengubah nilai minit dan saat berdasarkan nilai pemasa
def showCounter (diri):
# Periksa nilai pemboleh ubah startWatch untuk memulakan atau menghentikan Stop Watch
sekiranya diri.startWatch:
# Kaunter kenaikan sebanyak 1
diri.pembilang + = 1
# Hitung dan tetapkan nilai pembilang masa
cnt = int ((diri.kaunter / 10 - int (diri.kaunter / 10)) * 10)
diri.hitung = '0' + str (cnt)
# Tetapkan nilai kedua
sekiranya int (diri.kaunter / 10) < 10 :
diri.kedua = '0' + str (int (diri.kaunter / 10))
lain:
diri.kedua = str (int (diri.kaunter / 10))
# Tetapkan nilai minit
sekiranya diri.pembilang / 10 == 60.0:
diri.kedua == '00'
diri.pembilang = 0
min = int (diri.minit) + 1
sekiranya min < 10 :
diri.minit = '0' + str (min)
lain:
diri.minit = str (min)
# Gabungkan nilai mintue, kedua dan hitung
teks = diri.minit + ':' + diri.kedua + ':' + diri.mengira
# Paparkan nilai jam tangan di label
diri.label.setTeks ('
'+ teks +'
')# Tentukan kaedah untuk mengendalikan butang mula
def Mula (diri):
# Tetapkan kapsyen butang mula berdasarkan kapsyen sebelumnya
sekiranya diri.mulakan.teks () == 'Berhenti':
diri.mulakan.setText ('Resume')
diri.startWatch = Salah
lain:
# menjadikan startWatch menjadi benar
diri.startWatch = Betul
diri.mulakan.setText ('Berhenti')
# Tentukan kaedah untuk mengendalikan butang reset
def Tetapkan semula (diri):
diri.startWatch = Salah
# Tetapkan semula semua pemboleh ubah pembilang
diri.pembilang = 0
diri.minit = '00'
diri.kedua = '00'
diri.kiraan = '00'
# Tetapkan nilai awal untuk jam tangan
diri.label.setText (str (diri.kaunter))
# Buat objek aplikasi dan jalankan aplikasinya
app = QApplication (sys.berhujah)
stopWt = StopWatchWindow ()
aplikasi.exec ()
Tetingkap berikut akan muncul setelah skrip di atas dijalankan.
Jam randik akan mula berfungsi setelah pengguna mengklik Mulakan butang.
Kaunter akan berhenti mengira setelah pengguna mengklik Berhenti butang.
Contoh 2: Buat Jam Digital
Skrip berikut akan melaksanakan jam digital di Python menggunakan QTimer kelas. Skrip akan memaparkan jam digital dalam label dengan membaca waktu sistem semasa sekali setiap saat.
# Import modul yang diperlukanimport sys
dari PyQt5.QtWidgets mengimport QApplication, QWidget, QLabel, QVBoxLayout
dari PyQt5.Qtimor import QTimer, QTime, Qt
dari PyQt5.QtGui import QFont
# Tentukan kelas untuk membuat jam digital
kelas DigitalClock (QWidget):
def __init __ (diri):
super ().__di dalamnya__()
# Buat label dengan fon dan penjajaran
diri.lblTimer = QLabel ()
font = QFont ('Kali', 50)
diri.lblTimer.setFont (fon)
diri.lblTimer.setAlignment (Qt.AlignCenter)
# Buat objek susun atur vartikal
v_layout = QVBoxLayout ()
v_lakonan.addWidget (diri.lblTimer)
diri.setLayout (v_layout)
# Buat objek pemasa dan panggil kaedah yang diperlukan untuk memaparkan jam
pemasa = QTimer (diri)
pemasa.masa tamat.menyambung (diri.tunjukClock)
pemasa.bermula (1000)
# Tetapkan tajuk tetingkap
diri.setWindowTitle ("Jam Digital menggunakan QTimer")
# Ubah saiz tetingkap
diri.ubah saiz (270, 120)
# Gerakkan kedudukan tingkap
diri.bergerak (800, 400)
# Kaedah panggilan untuk memaparkan waktu
diri.tunjukkanClock ()
# Paparkan tingkap
diri.tunjuk ()
def showClock (diri):
# Baca masa semasa
Current_Time = QTime.masa semasa ()
# Paparkan jam digital
diri.lblTimer.setTeks ('
'+ Masa_ Semasa.toString ('hh: mm: ss AP') + '
')# Buat objek aplikasi dan jalankan aplikasinya
app = QApplication (sys.berhujah)
menang = DigitalClock ()
aplikasi.exec ()
Tetingkap keluaran berikut akan muncul setelah skrip di atas dijalankan.
Kesimpulannya
Nilai tarikh dan waktu masa sistem semasa dapat dibaca dengan pelbagai cara menggunakan kelas QTimer perpustakaan PyQt. Kelas QTimer digunakan dalam tutorial ini untuk melaksanakan pelbagai contoh skrip masa.