尝试在工作人员网络之间设置新的插槽和信号,QRunnable并通过回调(以处理网络响应)提交代码的同时,我得到了以下代码行:
exception_callback = QtCore.pyqtSlot('PyQt_PyObject', str)(exception_callback)
其中exception_callback是某个类实例的绑定成员函数。但是,上述行失败,并出现以下错误:
AttributeError: 'instancemethod' object has no attribute '__pyqtSignature__'
我想念什么?
编辑:
一个简单的复制:
class A(QtCore.QObject):
def a(self):
print("Called")
a=A()
QtCore.pyqtSlot()(a.a)
将引发以下异常:
AttributeError: 'instancemethod' object has no attribute '__pyqtSignature__'
我发现一种解决方法是,将成员函数包装起来并在成员函数周围使用闭包将是可行的:
QtCore.pyqtSlot()(lambda : a.a())
但是,这有点混乱,我宁可在不了解其必要性的情况下也不使用变通方法。
饮歌长啸
相关分类