Ejemplo n.º 1
0
 def mouseMoveEvent(self, event):
     # for less calls to widgetsAt()
     widgetsUnderCusor = self.widgetsAt(event.x(), event.y())
     mouseEvent = MouseEvent.fromQtEvent(event)
     
     if widgetsUnderCusor is not None:
         for widget in widgetsUnderCusor:
             mouseEvent.x -= widget.x() # adjust coordinates to widget top left
             mouseEvent.y -= widget.y()
             
             if not widget in self._widgetsPreviouslyUnderCursor:
                 widget._mouseEnterEvent(mouseEvent)
                 
             widget._mouseMoveEvent(mouseEvent)
             
             mouseEvent.x += widget.x() # reset coordinates
             mouseEvent.y += widget.y()
             
         for widget in self._widgetsPreviouslyUnderCursor:
             if not widget in widgetsUnderCusor:
                 mouseEvent.x -= widget.x() # adjust coordinates to widget top left
                 mouseEvent.y -= widget.y()
                 
                 widget._mouseExitEvent(mouseEvent)
                 
                 mouseEvent.x += widget.x() # reset coordinates
                 mouseEvent.y += widget.y()
     
     # get ready for the next mouse move event
     self._widgetsPreviouslyUnderCursor = self.widgetsAt(event.x(), event.y())
     self._previousMouseMoveEvent = QMouseEvent(QEvent.HoverMove,QPoint(event.pos()),QPoint(event.globalPos()),
                                                event.button(),event.buttons(),event.modifiers())
     
     return QWidget.mouseMoveEvent(self, event)