我相信很多人在学习PyQt5的时候都遇到过多线程QThread怎么接收信号,在百度或者视频以及书籍里都只教了怎么用多线程QThread来发射信号。
多线程接收信号有多种方法,1、__init__()函数传参;2、使用队列Queue();3、使用pyqtSignal
新手的我之前琢磨了很久研究QThread多线程怎么接收pyqtSignal的信号,我们知道多线程QThread的start()和run()函数不能接收信号,无奈翻遍了全网都没有找到,基本都讲的是怎么发出信号。昨晚的时候突然想通了,实现了接收信号。
首先我要用一个例子来介绍一下。如下所示,UI界面有一个生产按钮和一个打印文本框。
QThread_1是用来生产产品的线程,主要是发射信号的功能;
QThread_2是用来消费产品的线程,关键是接收信号的功能。
QThread_1和QThread_2都可以发射信号给文本框显示信息。
完整代码如下:
# -*- coding: utf-8 -*-
"""
作者:Administrator
时间:2021年07月28日
"""
from PyQt5.QtCore import QThread,pyqtSignal,pyqt