If you look at the method names, and their documentation, then you'll notice that you are trying to map a "screen pos" into the scene using a method of the view.
So unless your view has no decoration and is located at 0/0 of the screen, there will be offset.

But why do you need this in the first place, QGraphicsContextMenuEvent has a "scene pos" getter already?

Cheers,
_