放大到GraphicsView / GraphicsScene中的光标

问题描述 投票:1回答:1

我有一个QGraphicsView小部件,正在用作绘图画布。

我希望能够放大ctrl+mwheel上的鼠标光标位置。就我的代码而言,它只是滚动到画布中心,而不是光标位置。似乎翻译逻辑是错误的,但我不知道如何:

def zoomCanvas(self, event):
    zoomInFactor = 1.25
    zoomOutFactor = 1 / zoomInFactor
    oldPos = event.scenePos()
    if event.delta() > 0:
        zoomFactor = zoomInFactor
    else:
        zoomFactor = zoomOutFactor
    self.graphicsView.scale(zoomFactor, zoomFactor)
    newPos = event.scenePos()
    delta = newPos - oldPos
    self.graphicsView.translate(delta.x(), delta.y())
python-3.x pyqt5 zoom qgraphicsview qgraphicsscene
1个回答
1
投票
将这2个添加到graphicsView init中

self.setTransformationAnchor(QGraphicsView.AnchorUnderMouse) self.setResizeAnchor(QGraphicsView.AnchorUnderMouse)

© www.soinside.com 2019 - 2024. All rights reserved.