Python

Cara Menggunakan PyQt QTimer

Cara Menggunakan PyQt QTimer
Kelas QTimer perpustakaan PyQt membolehkan pengguna membuat jam digital, kaunter waktu, bar kemajuan dan banyak lagi. Kelas ini digunakan untuk membuat pemasa biasa yang menghantar isyarat ketika pemasa menyala dan ia mewarisi dari QObject kelas. Objek dari QTimer kelas dibuat sebagai anak widget. Apabila widget dipadamkan, objek pemasa juga akan dihapus. The QTimer kelas menyediakan fungsi statik yang dipanggil gambar tunggal () yang dapat digunakan untuk memanggil fungsi setelah jangka waktu tertentu. Tutorial ini menunjukkan kepada anda cara menggunakan QTimer kelas untuk membuat aplikasi PyQt yang berkaitan dengan masa.

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 diperlukan
import 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 diperlukan
import 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.

Cara menukar butang tetikus Kiri & Kanan pada PC Windows 10
Sudah menjadi kebiasaan bahawa semua peranti tetikus komputer dirancang secara ergonomik untuk pengguna tangan kanan. Tetapi ada peranti tetikus yang ...
Tiru klik Tetikus dengan melayang menggunakan Mouse Tanpa Klik di Windows 10
Menggunakan tetikus atau papan kekunci dalam keadaan salah penggunaan berlebihan boleh menyebabkan banyak masalah kesihatan, termasuk ketegangan, sind...
Tambahkan isyarat Tetikus ke Windows 10 menggunakan alat percuma ini
Dalam beberapa tahun kebelakangan ini komputer dan sistem operasi telah banyak berkembang. Ada saat ketika pengguna harus menggunakan perintah untuk m...