[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 09:39:50 GMT 2017


On 30 Jan 2017, at 11:19 pm, slepton at posteo.de wrote:
> 
> Hello,
> 
> I am trying to use  QWinEventNotifier on PyQt 5.6 / Python 3.5 with a custom slot. My Problem is, that I can't figure out what decorator to use.
> 
> The relevant code snippet looks like this: 
> 
> 
> 
> def register(self):
>     # Windows event
>     self.receive_event = win32event.CreateEvent(None, 0, 0, None)
>     # Code to register the event with the PCAN API
>     # ...
>     self.PCANrevieceEventHandler = QWinEventNotifier(parent=self)
>     self.PCANrevieceEventHandler.setHandle(ctypes.c_int(self.receive_event))
>     self.PCANrevieceEventHandler.activated.connect(self.msg_recev)
> 
> 
> @pyqtSlot(  )  # I tried int, ctypes.c_int, ... nothing  
> def msg_recev(self, handle):
>     # read the buffer
> 
> 
> I get TypeError: connect() failed between activated(Qt::HANDLE) and unislot() 
> 
> 
> I know, that in Qt 5.8 there would be QtSerialBus to propperly handle this, looking at the Qt src, QWinEventNotifier seems to be the right thing to use...   
> 
> What is the propper way to do this? 

Try without a decorator and see what is actually passed in.

Phil


More information about the PyQt mailing list