子线程Thread继承了QThread和一个自定义类,想调用自定义类中的方法,但是在使用pyqtSignal发送信号出问题,#注释掉的那句不加就提示没有调用Thread,加上就提示缺少参数dx,dy,加上参数又提示非int,这里的__init__该如何正确定义呢?
# 创建任务运行子线程
class Thread(QThread, CrazyChiefTask):
sin_status = pyqtSignal(str)
def __init__(self, dx, dy, statusList):
CrazyChiefTask.__init__(self, dx, dy)
# super(Thread, self).__init__()
self.statusList = statusList
self.dx = dx
self.dy = dy
try:
self.sin_status.emit('123')
except Exception as e:
print(e)
def run(self):
...
super(Thread, self).init()
不加这句报错
super-class init() of type Thread was never called
super(Thread, self).init()
加上这句报错
init() missing 2 required positional arguments: 'dx' and 'dy'
你可以这样定义,试试,继承父类直接用qt的QThread就行了
# 继承QThread
class Runthread(QtCore.QThread):
# 通过类成员对象定义信号对象
_signal = QtCore.pyqtSignal(str)
def __init__(self, dx, dy, statusList):
super(Runthread, self).__init__()
self.statusList = statusList
self.dx = dx
self.dy = dy