From 43eb486700111323c1b10b90e4331b21e7f17902 Mon Sep 17 00:00:00 2001 From: Dylan Jeannin Date: Tue, 21 Apr 2026 10:20:24 +0200 Subject: [PATCH] =?UTF-8?q?zoom=20plus=20intuitif=20avec=20translation=20d?= =?UTF-8?q?u=20widget=20pour=20garder=20une=20coh=C3=A9rence=20dans=20le?= =?UTF-8?q?=20zoom?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/View/Network/GraphWidget.py | 13 ++++++++++++- src/View/Scenarios/GraphWidget.py | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/View/Network/GraphWidget.py b/src/View/Network/GraphWidget.py index 4157bb63..db877c06 100644 --- a/src/View/Network/GraphWidget.py +++ b/src/View/Network/GraphWidget.py @@ -901,7 +901,18 @@ class GraphWidget(QGraphicsView): painter.drawRect(sceneRect) 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): factor = self.transform().scale( diff --git a/src/View/Scenarios/GraphWidget.py b/src/View/Scenarios/GraphWidget.py index 65a1ced4..0fff07d3 100644 --- a/src/View/Scenarios/GraphWidget.py +++ b/src/View/Scenarios/GraphWidget.py @@ -312,7 +312,18 @@ class GraphWidget(QGraphicsView): painter.drawRect(sceneRect) 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): key = event.key()