[detectionview] zooming

This commit is contained in:
Jan Grewe 2025-02-03 08:48:31 +01:00
parent ae0df7b4c3
commit 04ff142f1c

View File

@ -87,14 +87,31 @@ class DetectionView(QWidget):
self._img = None
self._pixmapitem = None
self._scene = DetectionScene()
# self.setRenderHint(QGraphicsView.RenderFlag.Ren Antialiasing)
self._view = QGraphicsView()
self._view.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
self._view.setMouseTracking(True)
self._zoomFactor = 1.15
self._minZoom = 0.1
self._maxZoom = 10
self._currentZoom = 1.0
lyt = QVBoxLayout()
lyt.addWidget(self._view)
self.setLayout(lyt)
def wheelEvent(self, event):
if event.angleDelta().y() > 0: # Zoom in
factor = self._zoomFactor
else: # Zoom out
factor = 1 / self._zoomFactor
newZoom = self._currentZoom * factor
if self._minZoom < newZoom < self._maxZoom:
self._view.scale(factor, factor)
self._currentZoom = newZoom
def setImage(self, image: QImage):
self._img = image
self._scene.signals.itemsSelected.connect(self.on_itemSelection)