PyQt5 Qthread
时间: 2023-08-14 21:03:03 浏览: 149
PyQt5中的QThread是一个用于在后台执行耗时任务的线程类。它可以与主线程进行通信,以便更新UI界面。在引用\[1\]中的代码示例中,我们可以看到一个继承自QThread的Worker类,它重写了run()方法来执行具体的任务。在run()方法中,使用了time.sleep(1)来模拟耗时操作,并通过self.sig.emit()发送信号来更新UI界面。在MainWindow类中,通过self.thread.start()来启动Worker线程。
在引用\[2\]中的代码示例中,我们可以看到在main.py中创建了一个QApplication实例,并初始化了MainWindow类的实例。然后通过main_window.show()来显示主窗口,并通过sys.exit(app.exec_())来进入事件循环。
在引用\[3\]中的代码示例中,我们可以看到一个没有使用线程的例子。在MyWindow类中,通过num_button.clicked.connect(lambda: self.numPrint(text_edit))来连接按钮的点击事件,并在numPrint()方法中使用time.sleep(1)来模拟耗时操作。为了保持UI界面的刷新,使用了QApplication.processEvents()来处理事件。
总结来说,PyQt5的QThread类可以用于在后台执行耗时任务,并与主线程进行通信以更新UI界面。通过重写QThread的run()方法来执行具体的任务,并通过信号与槽机制来实现与主线程的通信。
#### 引用[.reference_title]
- *1* *2* [PyQt5系列教程(十四)QThread](https://blog.csdn.net/djstavaV/article/details/105742133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [PyQt5第八部分-多线程-QThread](https://blog.csdn.net/u011079613/article/details/109578443)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文