Attributeerror: ‘pyqt5.qtcore.pyqtsignal’ object has no attribute ‘connect’

An AttributeError with the message “‘pyqt5.qtcore.pyqtsignal’ object has no attribute ‘connect'” typically occurs when attempting to use the `connect` method on a PyQt5 signal object that does not have this method. This error message suggests that you are trying to connect a signal to a slot but the signal object does not have the `connect` method.

For instance, let’s say you have a signal defined in your application like this:


from PyQt5.QtCore import pyqtSignal, QObject

class MyObject(QObject):
    mySignal = pyqtSignal()

    def emitSignal(self):
        self.mySignal.emit()

Now, if you try to connect this signal to a slot using the `connect` method and you receive the `AttributeError`, it means that the `mySignal` object does not have the `connect` method.

To fix this issue, make sure you are using the correct signal object when calling the `connect` method. In the above example, you need to use an instance of the `MyObject` class to access the signal object:


obj = MyObject()
obj.mySignal.connect(yourSlotFunction)

Ensure that you are not mistakenly using the signal object itself to invoke the `connect` method, as it is not a valid approach and will result in the mentioned `AttributeError`.

Related Post

Leave a comment