Cara Membuat Thread Latar Belakang dengan QThread dalam PyQt
Multithreading ialah teknik pengaturcaraan yang membenarkan berbilang tugasan dijalankan serentak dalam satu atur cara. Dalam PyQt, QThread ialah kelas yang menyediakan cara untuk mencipta dan mengurus benang. Ini boleh berguna untuk tugasan yang perlu dijalankan di latar belakang tanpa menyekat urutan GUI utama.
Sebagai contoh, katakan anda mempunyai program yang antara muka dengan radio. Salah satu fungsi utama radio adalah untuk menghantar data, tetapi untuk melakukan ini secara berterusan, anda perlu menggelungkan penulisan. Ini boleh menyebabkan GUI tergantung kerana utas utama sedang sibuk menulis ke radio.
Salah satu cara untuk membetulkannya ialah menggunakan QThread untuk mencipta utas latar belakang yang mengendalikan tulisan ke radio. Ini akan membebaskan utas utama untuk terus mengemas kini GUI.
Berikut ialah contoh mudah cara mencipta dan memulakan utas latar belakang dengan QThread:
import sys from PyQt5.QtCore import QThread, QObject class MyThread(QThread): def __init__(self): super().__init__() def run(self): # This code will run in a separate thread while True: # Do something... pass def main(): app = QApplication(sys.argv) # Create a thread instance thread = MyThread() # Start the thread thread.start() # The main GUI event loop app.exec_() if __name__ == "__main__": main()
Dalam contoh ini, Kelas MyThread ialah subkelas QThread. Kaedah run() mentakrifkan kod yang akan dilaksanakan dalam benang latar belakang. Setelah urutan dimulakan, kod dalam kaedah run() akan dilaksanakan serentak dengan gelung acara GUI utama.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan GUI Pembekuan dengan Menggunakan QThread untuk Tugasan Latar Belakang dalam PyQt?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!