mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
zoom plus intuitif avec translation du widget pour garder une cohérence dans le zoom
This commit is contained in:
1 parent
82eeb9a478
commit
43eb486700
2 files changed
+24
-2
No files matched your search
@@ -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(
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in new issue
Block a user