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,
_
Bookmarks