Description
There is an issue in PySide2/Qt5 when using signals derived from mixin.
For example, the following code doesn't print "emit2". After calling mySignal.connect(), mySlot is never called.
import PySide2.QtCore as QtCore class Mixin(object): mySignal = QtCore.Signal() def __init__(self, *args, **kwargs): super(Mixin,self).__init__(*args, **kwargs) class Derived(Mixin, QtCore.QObject): echoSignal = QtCore.Signal(str) def __init__(self): super(Derived,self).__init__() self.echoSignal.connect(self.mySlot) def mySlot(self, v): print v + ' -> mySlot' def nopSlot(): pass obj = Derived() obj.echoSignal.emit('emit1') obj.mySignal.connect(nopSlot) # This line breaks mySlot.. obj.echoSignal.emit('emit2')
I suspect that this is caused by a change to sort slots and signals in dynamicqmetaobject.cpp. Probably someone is still using index from AddMethod()?