예제 #1
0
 def wheelEvent(self, event: QWheelEvent):
     if event.modifiers() & Qt.ControlModifier \
             and event.buttons() == Qt.NoButton:
         delta = event.angleDelta().y()
         # use mouse position as anchor while zooming
         anchor = self.transformationAnchor()
         self.setTransformationAnchor(QGraphicsView.AnchorUnderMouse)
         self.__setZoomLevel(self.__zoomLevel + 10 * delta / 120)
         self.setTransformationAnchor(anchor)
         event.accept()
     else:
         super().wheelEvent(event)
예제 #2
0
 def wheelEvent(self, event: QWheelEvent):
     if event.modifiers() & Qt.ControlModifier \
             and event.buttons() == Qt.NoButton:
         delta = event.angleDelta().y()
         # use mouse position as anchor while zooming
         anchor = self.transformationAnchor()
         self.setTransformationAnchor(QGraphicsView.AnchorUnderMouse)
         self.__setZoomLevel(self.__zoomLevel + 10 * delta / 120)
         self.setTransformationAnchor(anchor)
         event.accept()
     else:
         super().wheelEvent(event)
예제 #3
0
 def wheelEvent(self, event: QWheelEvent):
     # use mouse position as anchor while zooming
     self.setTransformationAnchor(2)
     if event.modifiers() & Qt.ControlModifier and event.buttons(
     ) == Qt.NoButton:
         delta = event.angleDelta().y()
         if (QT_VERSION >= 0x050500
                 and event.source() != Qt.MouseEventNotSynthesized
                 and abs(delta) < 50):
             self.change_zoom(delta / 10)
         else:
             self.change_zoom(copysign(1, delta))
     else:
         super().wheelEvent(event)
예제 #4
0
 def __should_scroll_horizontally(self, event: QWheelEvent):
     if event.source() != Qt.MouseEventNotSynthesized:
         return False
     if (event.modifiers() & Qt.ShiftModifier and sys.platform == 'darwin'
             or event.modifiers() & Qt.AltModifier
             and sys.platform != 'darwin'):
         return True
     if event.angleDelta().x() == 0:
         vBar = self.verticalScrollBar()
         yDelta = event.angleDelta().y()
         direction = yDelta >= 0
         edgeVBarValue = vBar.minimum() if direction else vBar.maximum()
         return vBar.value() == edgeVBarValue
     return False
예제 #5
0
파일: view.py 프로젝트: PrimozGodec/orange3
 def wheelEvent(self, event: QWheelEvent):
     # use mouse position as anchor while zooming
     self.setTransformationAnchor(2)
     if event.modifiers() & Qt.ControlModifier \
             and event.buttons() == Qt.NoButton:
         delta = event.angleDelta().y()
         if QT_VERSION >= 0x050500 \
                 and event.source() != Qt.MouseEventNotSynthesized \
                 and abs(delta) < 50:
             self.change_zoom(delta / 10)
         else:
             self.change_zoom(copysign(1, delta))
     else:
         super().wheelEvent(event)
def qWheelScroll(
        widget: QWidget,
        buttons=Qt.NoButton,
        modifiers=Qt.NoModifier,
        pos=QPoint(),
        angleDelta=QPoint(0, 1),
):
    if pos.isNull():
        pos = widget.rect().center()
    globalPos = widget.mapToGlobal(pos)
    event = QWheelEvent(QPointF(pos), QPointF(globalPos), QPoint(), angleDelta,
                        buttons, modifiers, Qt.NoScrollPhase, False)
    QApplication.sendEvent(widget, event)
def qWheelScroll(
        widget: QWidget,
        buttons=Qt.NoButton,
        modifiers=Qt.NoModifier,
        pos=QPoint(),
        angleDelta=QPoint(0, 1),
):
    if pos.isNull():
        pos = widget.rect().center()
    globalPos = widget.mapToGlobal(pos)

    if angleDelta.y() >= angleDelta.x():
        qt4orient = Qt.Vertical
        qt4delta = angleDelta.y()
    else:
        qt4orient = Qt.Horizontal
        qt4delta = angleDelta.x()

    event = QWheelEvent(QPointF(pos), QPointF(globalPos), QPoint(), angleDelta,
                        qt4delta, qt4orient, buttons, modifiers)
    QApplication.sendEvent(widget, event)
예제 #8
0
 def wheelEvent(self, event: QWheelEvent):
     # Zoom
     if event.modifiers() & Qt.ControlModifier \
             and event.buttons() == Qt.NoButton:
         delta = event.angleDelta().y()
         # use mouse position as anchor while zooming
         anchor = self.transformationAnchor()
         self.setTransformationAnchor(QGraphicsView.AnchorUnderMouse)
         self.__setZoomLevel(self.__zoomLevel + 10 * delta / 120)
         self.setTransformationAnchor(anchor)
         event.accept()
     # Scroll horizontally
     elif self.__should_scroll_horizontally(event):
         x, y = event.angleDelta().x(), event.angleDelta().y()
         sign_value = x if x != 0 else y
         sign = 1 if sign_value >= 0 else -1
         new_angle_delta = QPoint(sign * max(abs(x), abs(y), sign_value), 0)
         new_pixel_delta = QPoint(0, 0)
         new_modifiers = event.modifiers() & ~(Qt.ShiftModifier
                                               | Qt.AltModifier)
         new_event = QWheelEvent(event.pos(), event.globalPos(),
                                 new_pixel_delta, new_angle_delta,
                                 event.buttons(), new_modifiers,
                                 event.phase(), event.inverted(),
                                 event.source())
         event.accept()
         super().wheelEvent(new_event)
     else:
         super().wheelEvent(event)
예제 #9
0
파일: gui.py 프로젝트: zyblx/orange3
 def wheelEvent(self, event: QWheelEvent):
     if event.source() == Qt.MouseEventNotSynthesized and \
             (event.modifiers() & Qt.ShiftModifier and sys.platform == 'darwin' or
              event.modifiers() & Qt.AltModifier and sys.platform != 'darwin'):
         new_event = QWheelEvent(event.pos(), event.globalPos(),
                                 event.pixelDelta(), event.angleDelta(),
                                 event.buttons(), Qt.NoModifier,
                                 event.phase(), event.inverted(),
                                 Qt.MouseEventSynthesizedByApplication)
         event.accept()
         super().wheelEvent(new_event)
     else:
         super().wheelEvent(event)
예제 #10
0
 def wheelEvent(self, event: QWheelEvent):
     if event.modifiers() & Qt.ControlModifier \
             and event.buttons() == Qt.NoButton:
         # Zoom
         delta = event.angleDelta().y()
         # use mouse position as anchor while zooming
         anchor = self.transformationAnchor()
         self.setTransformationAnchor(QGraphicsView.AnchorUnderMouse)
         self.__setZoomLevel(self.__zoomLevel + 10 * delta / 120)
         self.setTransformationAnchor(anchor)
         event.accept()
     elif event.source() == Qt.MouseEventNotSynthesized \
                and (event.angleDelta().x() == 0 \
                and not self.verticalScrollBar().isVisible()) \
                or (sys.platform == 'darwin' and event.modifiers() & Qt.ShiftModifier
                    or sys.platform != 'darwin' and event.modifiers() & Qt.AltModifier):
         # Scroll horizontally
         x, y = event.angleDelta().x(), event.angleDelta().y()
         sign_value = x if x != 0 else y
         sign = 1 if sign_value >= 0 else -1
         new_angle_delta = QPoint(sign * max(abs(x), abs(y), sign_value), 0)
         new_pixel_delta = QPoint(0, 0)
         new_modifiers = event.modifiers() & ~(Qt.ShiftModifier
                                               | Qt.AltModifier)
         new_event = QWheelEvent(event.pos(), event.globalPos(),
                                 new_pixel_delta, new_angle_delta,
                                 event.buttons(), new_modifiers,
                                 event.phase(), event.inverted(),
                                 event.source())
         event.accept()
         super().wheelEvent(new_event)
     else:
         super().wheelEvent(event)