[detectionview] zooming
This commit is contained in:
parent
ae0df7b4c3
commit
04ff142f1c
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user