[PyQt] How to connect the activated signal of QWinEventNotifier to a custom slot in pyqt 5.6

Phil Thompson phil at riverbankcomputing.com
Tue Jan 31 12:14:28 GMT 2017


On 31 Jan 2017, at 11:59 am, slepton at posteo.de wrote:
> 
> Hi Phil,
> 
> thanks for the quick reply.
> 
> 
> 1. Looking at QWinEventNotifier the Signal is voidptr, right?
> 
> class QWinEventNotifier(QObject):
>    """
>    QWinEventNotifier(parent: QObject = None)
>    QWinEventNotifier(sip.voidptr, parent: QObject = None)
>    """
>    def activated(self, sip_voidptr): # real signature unknown; restored from __doc__
>        """ activated(self, sip.voidptr) [signal] """
>        pass
> 
> 
> 
> 2. Looking at the connection error
> 
>     TypeError: connect() failed between activated(Qt::HANDLE)
> 
> I would assume,  that  voidptr is acctually  a Qt::HANDLE  (http://doc.qt.io/qt-5.6/qt.html#HANDLE-typedef)  which I couldn't find in from PyQt5.QtCore import Qt , is this even the right place to look?
> 
> 
> 
> 3. I am not sure I understand correctly what to do, so far the slot I connected to looked like
> 
> @pyqtSlot(int)
> def event_slot(self, event):
>    # do something ...
> 
> For the @pyqtSlot decorator I additionally tried @pyqtSlot() and in a desperate attempt @pyqtSlot(ctypes.c_int)  since this would be the correct type for the win32event.
> 
> What decorator can I use to further track down the problem?

@pyqtSlot('Qt::HANDLE')

should work, but you don't need a decorator at all.

Phil


More information about the PyQt mailing list