Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Retain mouse coordinates after Zoom in/out.



  • I've a central widget with scaled axes . I'm getting the coordinates by using:

    x = (event->pos().x());
    y = (event->pos().y());
    

    This is working fine. After zooming in or out, the coordinates still remain same. But from the point of view of central widget, it should get changed. How do I achieve this?


  • Lifetime Qt Champion

    Hi
    Well how do you zoom the central widget ?
    You have to apply the same math to the mouse coordinates to
    calculate a zoomed point.


  • Moderators

    What @mrjj said. In (pseudo) code it's simply:

    QPoint newCursorPos = oldCursorPos / oldZoomFactor * newZoomFactor;
    


  • I'll restate the problem:
    When I zoomed in and hover on the upper left corner, the location should NOT be 0,0 (the QMouseMouseEvent just gives me this point). I want the coordinates relative to the central widget.


Log in to reply