gpt4 book ai didi

python - 放大鼠标位置 QGraphicsView

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:27 32 4
gpt4 key购买 nike

我正在寻找如何放大 QGraphicsView 但在光标位置上。目前我可以缩放,但它缩放到的位置不一致。

    def wheelEvent(self, event):
'''Wheel event to zoom
'''
# Run default event
QtWidgets.QGraphicsView.wheelEvent(self, event)

# Define zoom factor
factor = 1.1
if event.delta() < 0:
factor = 0.9

self.scale(factor, factor)

我见过self.mapToScene()的用法,但是没有成功

最佳答案

一个可能的解决方案是关注鼠标所在的点,缩放并重新计算新中心应该在的点:

def wheelEvent(self, event):
factor = 1.1
if event.delta() < 0:
factor = 0.9
view_pos = event.pos()
scene_pos = self.mapToScene(view_pos)
self.centerOn(scene_pos)
self.scale(factor, factor)
delta = self.mapToScene(view_pos) - self.mapToScene(self.viewport().rect().center())
self.centerOn(scene_pos - delta)

关于python - 放大鼠标位置 QGraphicsView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58965209/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com