从线程发信号,在线程外面收信号,不会用。

我其实是想在线程函数fsmf中发一个信号,在shishi函数中收到这个信号,怎么办?
从线程发信号,在线程外面收信号,不会用。

你这代码写的是真乱。给你写了个例子,根据下面的例子修改即可:
import sys
from PyQt5 import QtCore
from PyQt5.QtCore import pyqtSignal, QObject
from PyQt5.QtWidgets import QMainWindow, QApplication
# 线程类
class QTSignal(QtCore.QThread):
sendmsg = pyqtSignal(int)
def __init__(self):
super(QTSignal,self).__init__()
self.g1g1=1
# 线程函数,这里写你的逻辑
def run(self):
for i in range(10):
self.g1g1 = i # 这里根据你的需要调整g1g1的值,我这里直接遍历了i
self.sendmsg.emit(self.g1g1)
# 信号处理类,这里绑定信号和槽函数,在槽函数中处理
class shili(QMainWindow): # 这里集成QMainWindow类是为了显示窗口
def __init__(self):
super(shili,self).__init__()
self.send = QTSignal()
self.send.sendmsg.connect(self.shishi)
def fsmf(self):
self.send.start() # 启动线程,进行处理
def shishi(self,val):
print(val) # 槽函数,val是线程发送的数据
# 测试
if __name__ == '__main__':
app = QApplication(sys.argv)
form = shili()
form.fsmf()
form.show()
sys.exit(app.exec_())