zoom plus intuitif avec translation du widget pour garder une cohérence dans le zoom

This commit is contained in:
Dylan Jeannin committed 2026-04-21 10:20:24 +02:00
1 parent 82eeb9a478
commit 43eb486700
2 files changed
+24 -2

No files matched your search

+12 -1
View File
@@ -901,7 +901,18 @@ class GraphWidget(QGraphicsView):
painter.drawRect(sceneRect) painter.drawRect(sceneRect)
def wheelEvent(self, event): def wheelEvent(self, event):
self.scaleView(math.pow(2.0, event.angleDelta().y() / 240.0)) factor = math.pow(2.0, event.angleDelta().y() / 240.0)
old_pos = self.mapToScene(event.pos())
self.scaleView(factor)
new_pos = self.mapToScene(event.pos())
delta = old_pos - new_pos
# Compensation pour garder le point sous la souris fixe
self.translate(delta.x(), delta.y())
def scaleView(self, scaleFactor): def scaleView(self, scaleFactor):
factor = self.transform().scale( factor = self.transform().scale(
+12 -1
View File
@@ -312,7 +312,18 @@ class GraphWidget(QGraphicsView):
painter.drawRect(sceneRect) painter.drawRect(sceneRect)
def wheelEvent(self, event): def wheelEvent(self, event):
self.scaleView(math.pow(2.0, event.angleDelta().y() / 240.0)) factor = math.pow(2.0, event.angleDelta().y() / 240.0)
old_pos = self.mapToScene(event.pos())
self.scaleView(factor)
new_pos = self.mapToScene(event.pos())
delta = old_pos - new_pos
# Compensation pour garder le point sous la souris fixe
self.translate(delta.x(), delta.y())
def keyPressEvent(self, event): def keyPressEvent(self, event):
key = event.key() key = event.key()