Any pointers??
Yes, first use the correct syntax for the connect() statement:

Qt Code:
  1. connect(myMenu, SIGNAL(leaveEvent(QEvent*)), this, SLOT(popupLeave()));
To copy to clipboard, switch view to plain text mode 

but in your case, this won't solve the problem. Your problem is you are trying to connect a slot to something that is not a signal. QWidget::leaveEvent() is an ordinary protected member function, not a signal. Even though there are several variations on the QObject::connect(), in all cases the first method in the connect() must be declared as a signal in the class definition. The method used as a slot can be any member function of the receiver, even a lambda.

If you are trying to implement a context menu, then the QGraphicsItem::contextMenuEvent() exists for exactly that purpose.