Esempio n. 1
0
    def wheelEvent(self, event: QtGui.QWheelEvent):
        delta_x = 0
        delta_y = 0

        if platform == "linux" or platform == "linux2":
            delta_x = event.angleDelta().x()
            delta_y = event.angleDelta().y()
        elif platform == "darwin":
            delta_x = event.pixelDelta().x()
            delta_y = event.pixelDelta().y()
        elif platform == "win32":
            delta_x = event.angleDelta().x()
            delta_y = event.angleDelta().y()

        self.trans.moving_x(delta_x)
        self.trans.moving_range(delta_y)

        plot: QGraphicsItem = self.scene().items()[0]
        trans = plot.transform()
        trans.translate(delta_x, 0)
        scale_x, scale_y = trans.m11(), trans.m22()
        print(scale_x, scale_y)
        trans.scale(1 + delta_y / scale_x / 100, 1 + delta_y / scale_y / 100)
        plot.setTransform(trans)

        print(trans.m11(), trans.m12(), trans.m13())
        print(trans.m21(), trans.m22(), trans.m23())
        print(trans.m31(), trans.m32(), trans.m33())

        super().wheelEvent(event)
Esempio n. 2
0
    def wheelEvent(self, a0: QtGui.QWheelEvent) -> None:
        if self.selector.labels and self.pressHoldSel:
            return super().wheelEvent(a0)

        if a0.modifiers() & QtCore.Qt.KeyboardModifier.ShiftModifier:
            c = self.hover.cats()
            if len(c) == 1:
                v = a0.angleDelta().y() or a0.angleDelta().x()
                self.hover.incr() if v > 0 else self.hover.decr()
                self.repaint()
            return super().wheelEvent(a0)

        lastScale = self.scale
        if a0.angleDelta().y() > 0:
            self.scale = min(
                self.scale < 1 and self.scale + 0.125 or self.scale + 1, 32)
        else:
            self.scale = max(
                self.scale <= 1 and self.scale - 0.125 or self.scale - 1, 0.25)

        c = a0.pos()
        self.viewOrigin[0] = int((self.viewOrigin[0] - c.x()) * self.scale /
                                 lastScale + c.x())
        self.viewOrigin[1] = int((self.viewOrigin[1] - c.y()) * self.scale /
                                 lastScale + c.y())
        self.pan(0, 0)
        return super().wheelEvent(a0)
Esempio n. 3
0
 def wheelEvent(self, event: QtGui.QWheelEvent):
     try:
         zoom = super().page().mainFrame().zoomFactor()
         if self.ctrlOn is True:
             event.accept()
             if event.angleDelta().y() > 0:
                 zoom += 0.2
             else:
                 zoom -= 0.2
             if zoom <= 0.2: zoom = 0.2
             if zoom >= 3: zoom = 3
             print('zoom = {}'.format(zoom))
             super().page().mainFrame().setZoomFactor(zoom)
         # super().page().repaint()
         else:
             if self.mode.value == QwwMode.CBZ.value:
                 super().page().mainFrame().setZoomFactor(1)
                 event.accept()
                 passed = 0
                 if event.angleDelta().y() < 0: passed = 1
                 elif event.angleDelta().y() > 0: passed = -1
                 self.updatePositionCbz(passed)
             else:
                 self.updatePositionEpub(event.angleDelta().y() * -1)
                 event.ignore()
     except Exception:
         traceback.print_exc()
Esempio n. 4
0
    def wheelEvent(self, event):
        if self.control_scheme.wheel_zooms:
            dy = event.angleDelta().y()
            # Filter out horizontal wheel motion. We don't support this yet.
            if dy == 0:
                event.ignore()
                return
            self.zoom_camera(dy)
        else:
            if event.modifiers() & Qt.ShiftModifier:
                event = QWheelEvent(event.posF(),
                                    event.globalPosF(),
                                    event.pixelDelta(),
                                    event.angleDelta(),

                                    # Value magically chosen to approximate
                                    # what is happening on nirvana using
                                    # a steelseries mouse...
                                    event.angleDelta().y() / 8,

                                    Qt.Horizontal,  # Qt4 crap
                                    event.buttons(),
                                    event.modifiers(),
                                    event.phase())
            super().wheelEvent(event)
Esempio n. 5
0
 def wheelEvent(self, a0: QtGui.QWheelEvent) -> None:
     if len(self.tdrWindow.td) == 0:
         a0.ignore()
         return
     chart_height = self.chartHeight
     chart_width = self.chartWidth
     do_zoom_x = do_zoom_y = True
     if a0.modifiers() == QtCore.Qt.ShiftModifier:
         do_zoom_x = False
     if a0.modifiers() == QtCore.Qt.ControlModifier:
         do_zoom_y = False
     if a0.angleDelta().y() > 0:
         # Zoom in
         a0.accept()
         # Center of zoom = a0.x(), a0.y()
         # We zoom in by 1/10 of the width/height.
         rate = a0.angleDelta().y() / 120
         if do_zoom_x:
             zoomx = rate * chart_width / 10
         else:
             zoomx = 0
         if do_zoom_y:
             zoomy = rate * chart_height / 10
         else:
             zoomy = 0
         absx = max(0, a0.x() - self.leftMargin)
         absy = max(0, a0.y() - self.topMargin)
         ratiox = absx / chart_width
         ratioy = absy / chart_height
         # TODO: Change zoom to center on the mouse if possible, or extend box to the side that has room if not.
         p1x = int(self.leftMargin + ratiox * zoomx)
         p1y = int(self.topMargin + ratioy * zoomy)
         p2x = int(self.leftMargin + chart_width - (1 - ratiox) * zoomx)
         p2y = int(self.topMargin + chart_height - (1 - ratioy) * zoomy)
         self.zoomTo(p1x, p1y, p2x, p2y)
     elif a0.angleDelta().y() < 0:
         # Zoom out
         a0.accept()
         # Center of zoom = a0.x(), a0.y()
         # We zoom out by 1/9 of the width/height, to match zoom in.
         rate = -a0.angleDelta().y() / 120
         if do_zoom_x:
             zoomx = rate * chart_width / 9
         else:
             zoomx = 0
         if do_zoom_y:
             zoomy = rate * chart_height / 9
         else:
             zoomy = 0
         absx = max(0, a0.x() - self.leftMargin)
         absy = max(0, a0.y() - self.topMargin)
         ratiox = absx / chart_width
         ratioy = absy / chart_height
         p1x = int(self.leftMargin - ratiox * zoomx)
         p1y = int(self.topMargin - ratioy * zoomy)
         p2x = int(self.leftMargin + chart_width + (1 - ratiox) * zoomx)
         p2y = int(self.topMargin + chart_height + (1 - ratioy) * zoomy)
         self.zoomTo(p1x, p1y, p2x, p2y)
     else:
         a0.ignore()
Esempio n. 6
0
 def on_wheel_turn(self, event: QtGui.QWheelEvent) -> None:
     if event.modifiers() & PAN_X_MODIFIER:
         self._api.video.view.pan_x += event.angleDelta().y() / 15 / 100
     elif event.modifiers() & PAN_Y_MODIFIER:
         self._api.video.view.pan_y += event.angleDelta().y() / 15 / 100
     else:
         self._api.video.view.zoom += event.angleDelta().y() / 15 / 100
Esempio n. 7
0
    def wheelEvent(self, e: QtGui.QWheelEvent) -> None:
        # 鼠标指针位于x轴范围内
        if e.pos().x() >= padding_left and e.pos().y(
        ) >= self.size().height() - padding_bottom:
            if e.angleDelta().y() > 0:
                if self.x_show_interval > 1:
                    self.x_show_interval -= 1
                else:
                    self.x_plot_interval += 1
            else:
                if self.x_plot_interval > 25:
                    self.x_plot_interval -= 1
                else:
                    self.x_show_interval += 1

        # 鼠标指针位于y轴范围内
        if e.pos().x() <= padding_left and e.pos().y(
        ) <= self.size().height() - padding_bottom:
            interval = random.randint(200, 500)  # 随机增减y轴坐标
            if e.angleDelta().y() > 0:
                self.y_max -= interval
                if self.y_max < 1023:
                    self.y_max = 1023
                self.y_min += interval
                if self.y_min > -1024:
                    self.y_min = -1024
            else:
                self.y_max += interval
                if self.y_max > 32767:
                    self.y_max = 32767
                self.y_min -= interval
                if self.y_min < -32768:
                    self.y_min = -32768

        self.update()
Esempio n. 8
0
    def wheelEvent(self, event: QtGui.QWheelEvent):
        x, y = self.translate(event.pos().x(), event.pos().y())

        new_zoom = self.zoom + event.angleDelta().y() / 400
        if new_zoom < self.min_scale and event.angleDelta().y() < 0:
            new_zoom = self.min_scale
        self.offset_x = ((new_zoom - self.zoom) * x + self.zoom * self.offset_x) / new_zoom
        self.offset_y = ((new_zoom - self.zoom) * y + self.zoom * self.offset_y) / new_zoom
        self.zoom = new_zoom
Esempio n. 9
0
 def wheelEvent(self, a0: QtGui.QWheelEvent) -> None:
     if len(self.data) == 0 and len(self.reference) == 0:
         a0.ignore()
         return
     do_zoom_x = do_zoom_y = True
     if a0.modifiers() == QtCore.Qt.ShiftModifier:
         do_zoom_x = False
     if a0.modifiers() == QtCore.Qt.ControlModifier:
         do_zoom_y = False
     if a0.angleDelta().y() > 0:
         # Zoom in
         a0.accept()
         # Center of zoom = a0.x(), a0.y()
         # We zoom in by 1/10 of the width/height.
         rate = a0.angleDelta().y() / 120
         if do_zoom_x:
             zoomx = rate * self.chartWidth / 10
         else:
             zoomx = 0
         if do_zoom_y:
             zoomy = rate * self.chartHeight / 10
         else:
             zoomy = 0
         absx = max(0, a0.x() - self.leftMargin)
         absy = max(0, a0.y() - self.topMargin)
         ratiox = absx / self.chartWidth
         ratioy = absy / self.chartHeight
         p1x = int(self.leftMargin + ratiox * zoomx)
         p1y = int(self.topMargin + ratioy * zoomy)
         p2x = int(self.leftMargin + self.chartWidth - (1 - ratiox) * zoomx)
         p2y = int(self.topMargin + self.chartHeight - (1 - ratioy) * zoomy)
         self.zoomTo(p1x, p1y, p2x, p2y)
     elif a0.angleDelta().y() < 0:
         # Zoom out
         a0.accept()
         # Center of zoom = a0.x(), a0.y()
         # We zoom out by 1/9 of the width/height, to match zoom in.
         rate = -a0.angleDelta().y() / 120
         if do_zoom_x:
             zoomx = rate * self.chartWidth / 9
         else:
             zoomx = 0
         if do_zoom_y:
             zoomy = rate * self.chartHeight / 9
         else:
             zoomy = 0
         absx = max(0, a0.x() - self.leftMargin)
         absy = max(0, a0.y() - self.topMargin)
         ratiox = absx / self.chartWidth
         ratioy = absy / self.chartHeight
         p1x = int(self.leftMargin - ratiox * zoomx)
         p1y = int(self.topMargin - ratioy * zoomy)
         p2x = int(self.leftMargin + self.chartWidth + (1 - ratiox) * zoomx)
         p2y = int(self.topMargin + self.chartHeight + (1 - ratioy) * zoomy)
         self.zoomTo(p1x, p1y, p2x, p2y)
     else:
         a0.ignore()
Esempio n. 10
0
    def wheelEvent(self, event: QWheelEvent) -> None:
        y_delta = event.angleDelta().y()
        if y_delta:
            notches = ceil(y_delta / 120)
            self._v_scrollbar.setValue(self._v_scrollbar.value() - notches)

        x_delta = event.angleDelta().x()
        if x_delta:
            notches = ceil(x_delta / 120)
            self._h_scrollbar.setValue(self._h_scrollbar.value() - notches)
Esempio n. 11
0
    def wheel_callback(self, event: QtGui.QWheelEvent):
        self.zoom_level += (event.angleDelta().y()) / (abs(
            event.angleDelta().y())) * 0.05
        if self.zoom_level < 0.05:
            self.zoom_level = 0.05

        if self.zoom_level > 10:
            self.zoom_level = 10

        self.update_zoom_level()
Esempio n. 12
0
 def wheelEvent(self, event: QWheelEvent) -> None:
     # print(click_descriptor(event, 'scroll'))
     # Zoom on Ctrl-scroll
     if with_control_key(event) and event.angleDelta().y():
         if event.angleDelta().y() > 0:
             self.zoom_in()
         else:
             self.zoom_out()
     else:
         super().wheelEvent(event)
Esempio n. 13
0
 def wheelEvent(self, event: QWheelEvent):
     factor = 1.1
     if event.angleDelta().x() or event.angleDelta().y() < 0:
         factor = 0.9
     view_pos = event.pos()
     scene_pos = self.mapToScene(view_pos)
     self.centerOn(scene_pos)
     self.scale(factor, factor)
     delta = self.mapToScene(view_pos) - self.mapToScene(
         self.viewport().rect().center())
     self.centerOn(scene_pos - delta)
Esempio n. 14
0
    def wheelEvent(self, event: QtGui.QWheelEvent) -> None:
        """
        Performs zoom in & out according to mousewheel moves

        :param event: The Qt wheel event
        :type event: QtGui.QWheelEvent
        """
        if event.angleDelta().y() > 0:
            self.scale(ImageView._ZOOM_FACTOR, ImageView._ZOOM_FACTOR)
        elif event.angleDelta().y() < 0:
            self.scale(1 / ImageView._ZOOM_FACTOR, 1 / ImageView._ZOOM_FACTOR)
Esempio n. 15
0
 def wheelEvent(self, event: QtGui.QWheelEvent) -> None:
     modifiers = event.modifiers()
     angle = event.angleDelta()
     print(f'common angle = {angle}')
     if modifiers == QtCore.Qt.ControlModifier:
         print(f'mods = {modifiers}')
         angle = event.angleDelta()
         if angle.y() > 0:
             self.zoom_in()
         elif angle.y() < 0:
             self.zoom_out()
         event.accept()
Esempio n. 16
0
 def wheelEvent(self, event: QWheelEvent):
     if self.__controlIsPressed:
         if self.zoom + 0.005 * event.angleDelta().y() > 0:
             self.zoom += 0.005 * event.angleDelta().y()
         else:
             self.zoom = 0.1
         self.__zoomed = True
     else:
         self.verticalScrollbar.setValue(self.verticalScrollbar.value() -
                                         event.angleDelta().y())
     self.__viewchanged = True
     self.update()
Esempio n. 17
0
 def wheelEvent(self, event: QtGui.QWheelEvent) -> None:
     if event.angleDelta().isNull():
         return
     # if event.modifiers() != QtCore.Qt.ControlModifier:
         return
     numDegrees = event.angleDelta().y() / 8;
     numSteps = numDegrees / 15
     if numSteps > 0:
         self._num_vertices += 1
         self.update()
     elif numSteps < 0 and self._num_vertices>10:
         self._num_vertices -= 1
         self.update()
Esempio n. 18
0
 def wheelEvent(self, a0: QtGui.QWheelEvent) -> None:
     if ((len(self.data) == 0 and len(self.reference) == 0)
             or a0.angleDelta().y() == 0):
         a0.ignore()
         return
     do_zoom_x = do_zoom_y = True
     if a0.modifiers() == QtCore.Qt.ShiftModifier:
         do_zoom_x = False
     if a0.modifiers() == QtCore.Qt.ControlModifier:
         do_zoom_y = False
     self._wheel_zomm(a0, do_zoom_x, do_zoom_y,
                      math.copysign(1,
                                    a0.angleDelta().y()))
Esempio n. 19
0
    def wheelEvent(self, a0: QWheelEvent):
        if(a0.modifiers() == QtCore.Qt.NoModifier):
            dz = a0.angleDelta().y() * 0.01
            self.DistanceStack[self.activeCamStackIdx] *= math.pow(1.2, -dz)
            self.DistanceStack[self.activeCamStackIdx] = self.SceneUserLimit if (self.DistanceStack[self.activeCamStackIdx] > self.SceneUserLimit) else self.DistanceStack[self.activeCamStackIdx]

        if (a0.modifiers() == QtCore.Qt.ControlModifier):
            dz = a0.angleDelta().y() * 0.005
            Val = self.FOVYStack[self.activeCamStackIdx] * math.pow(1.2, -dz)
            if Val > 1 and Val < 360:
                self.FOVYStack[self.activeCamStackIdx] = Val

        self.update()
Esempio n. 20
0
    def mouse_scroll_event(self, a0: QtGui.QWheelEvent):
        if self.selected_side:
            self.side_mode = True

        if self.drawing_mode.is_active() and (not self.ctrl_pressed):
            self.drawing_mode.drawing_strategy.register_scrolling(
                a0.angleDelta().y())
        elif self.side_mode and self.bbox_controler.has_active_bbox():
            self.bbox_controler.get_active_bbox().change_side(
                self.selected_side,
                -a0.angleDelta().y() / 4000)  # ToDo implement method
        else:
            self.pcd_controler.zoom_into(a0.angleDelta().y())
            self.scroll_mode = True
Esempio n. 21
0
    def wheelEvent(self, event: QWheelEvent) -> None:
        if Town.isPointInRect(
                event.pos(),
            (QPoint(0,
                    self.height() * .8), QSize(self.width(),
                                               self.height() * .2))):
            if self.menu_mode == 1:
                types = Town.BuildingTypes
            elif self.menu_mode == 2:
                types = Town.RoadTypes
            delta = event.pixelDelta()
            if delta is None:
                delta = -event.angleDelta().y() / 2
            else:
                delta = -delta.x() / 2
            max_scroll = (3 * len(types.sorted_names) +
                          1) / 15 * self.height() - self.width() - 4
            if Town.isPointInRect(
                    event.pos(),
                (QPoint(self.height() / 15 - 4,
                        self.height() * .8),
                 QSize(self.width(),
                       self.height() *
                       .2))) and (delta > 0 and max_scroll > self.scrollAmount
                                  or delta < 0 and self.scrollAmount > 0):
                self.scrollAmount += delta
                if max_scroll < self.scrollAmount:
                    self.scrollAmount = max_scroll
                elif self.scrollAmount < 0:
                    self.scrollAmount = 0

        elif self.mode != Modes.Instructions:
            self.town.scaleByEvent(event)
Esempio n. 22
0
 def wheelEvent(self, e: QWheelEvent):
     """ 实现平滑滚动效果 """
     if self.smoothMode == SmoothMode.NO_SMOOTH:
         super().wheelEvent(e)
         return
     # 将当前时间点插入队尾
     now = QDateTime.currentDateTime().toMSecsSinceEpoch()
     self.scrollStamps.append(now)
     while now - self.scrollStamps[0] > 500:
         self.scrollStamps.popleft()
     # 根据未处理完的事件调整移动速率增益
     accerationRatio = min(len(self.scrollStamps) / 15, 1)
     if not self.lastWheelEvent:
         self.lastWheelEvent = QWheelEvent(e)
     else:
         self.lastWheelEvent = e
     # 计算步数
     self.stepsTotal = self.fps * self.duration / 1000
     # 计算每一个事件对应的移动距离
     delta = e.angleDelta().y() * self.stepRatio
     if self.acceleration > 0:
         delta += delta * self.acceleration * accerationRatio
     # 将移动距离和步数组成列表,插入队列等待处理
     self.stepsLeftQueue.append([delta, self.stepsTotal])
     # 定时器的溢出时间t=1000ms/帧数
     self.smoothMoveTimer.start(1000 / self.fps)
Esempio n. 23
0
    def wheelEvent(self, event: QWheelEvent):
        """
        Zoom in or out of the view.
        """
        if event.modifiers() & Qt.ControlModifier or event.modifiers(
        ) & Qt.MetaModifier:
            zoomInFactor = 1.25
            zoomOutFactor = 1 / zoomInFactor

            # Save the scene pos
            oldPos = self.mapToScene(event.pos())

            # Zoom
            if event.angleDelta().y() > 0:
                zoomFactor = zoomInFactor
            else:
                zoomFactor = zoomOutFactor
            self.scale(zoomFactor, zoomFactor)

            # Get the new position
            newPos = self.mapToScene(event.pos())

            # Move scene to old position
            delta = newPos - oldPos
            self.translate(delta.x(), delta.y())
Esempio n. 24
0
def wheelEvent(self, event: QWheelEvent):
    """
        WheelEvent is the callback for wheel events of the operating system.
        Dependent on the OS, this can be a trackpad or a mouse wheel
    """

    if not (self.imageOpened):
        return

    # Disable wheel if x position is leaving image compartment
    if (event.x() > self.ui.verticalScrollBar.pos().x()):
        return

    if (event.source() == Qt.MouseEventSynthesizedBySystem):
        # touch pad geasture - use direct scrolling, not zooming
        # this is usually indicative for Mac OS
        subs = np.asarray(
            [float(event.pixelDelta().x()),
             float(event.pixelDelta().y())]) / 32000.0 * self.getZoomValue()
        self.relativeCoords -= subs
        if (self.relativeCoords[0] < -0.5):
            self.relativeCoords[0] = -0.5

        if (self.relativeCoords[1] < -0.5):
            self.relativeCoords[1] = -0.5

    else:  # mouse wheel - use scrolling
        inc = 1
        if (event.angleDelta().y() > 0):
            inc = -1
        self.setZoomValue(self.getZoomValue() * np.power(1.25, -inc))

    self.showImage()
    self.updateScrollbars()
Esempio n. 25
0
    def wheelEvent(self, event: QWheelEvent):
        if self.capturing_data:
            return

        delta = event.angleDelta().y()
        zoom_factor = 1.001**delta
        p0scene = self.mapToScene(event.pos())
        w = self.view_rect().width()
        zooming_in = zoom_factor > 1
        if zooming_in and w / zoom_factor < self.min_width:
            return

        max_width = self.max_width
        if self.max_width == "auto":
            max_width = self.sceneRect().width()
        if not zooming_in and w / zoom_factor > max_width:
            self.update()
            return

        self.scale(zoom_factor, 1)
        p1mouse = self.mapFromScene(p0scene)
        move = p1mouse - event.pos()
        self.horizontalScrollBar().setValue(move.x() +
                                            self.horizontalScrollBar().value())
        self.zoomed.emit(zoom_factor)
Esempio n. 26
0
 def wheelEvent(self, a0: QWheelEvent) -> None:
     if a0.modifiers() & Qt.ControlModifier:
         # ctrl press + scroll
         delta = a0.angleDelta().y()
         self.ctrlWheelScrolled.emit(delta)
     else:
         super(BasicTreeView, self).wheelEvent(a0)
    def mouse_wheel_event(self, e: QWheelEvent):
        delta: QtCore.QPoint = e.pixelDelta()
        if delta is None or delta.y() == 0:
            delta = e.angleDelta() / 10
        modifiers = int(e.modifiers())

        if modifiers and modifiers & MOD_MASK == modifiers:
            keyname = QKeySequence(modifiers).toString()
            if keyname == "Ctrl+":
                oldpos = self.UI.graphicsView.mapToScene(e.pos())
                self.scale_display(delta.y() * 0.01)
                newpos = self.UI.graphicsView.mapToScene(e.pos())
                deltapos = newpos - oldpos
                self.UI.graphicsView.translate(deltapos.x(), deltapos.y())
            if keyname == "Ctrl+Shift+":
                value = self.UI.BrushSizeSlider.value() + delta.y()
                self.UI.BrushSizeSlider.setValue(value)
            if keyname == "Shift+":
                delta *= self.scroll_speed
                value = self.UI.graphicsView.horizontalScrollBar().value(
                ) + delta.y()
                self.UI.graphicsView.horizontalScrollBar().setValue(value)
        else:
            delta *= self.scroll_speed
            value = self.UI.graphicsView.verticalScrollBar().value() + delta.y(
            )
            self.UI.graphicsView.verticalScrollBar().setValue(value)

        if self.paint_mode == PMode.Brush:
            # Update cursor position
            r = int(self.brush_size / 2)
            curr_pos = self.UI.graphicsView.mapToScene(e.pos())
            curr_pos.setX(curr_pos.x() - r)
            curr_pos.setY(curr_pos.y() - r)
            self.brush_cursor.setPos(curr_pos)
Esempio n. 28
0
 def wheelEvent(self, event: QWheelEvent) -> None:
     if self.parent.mediaAvailable:
         if event.angleDelta().y() > 0:
             self.parent.mpvWidget.frameBackStep()
         else:
             self.parent.mpvWidget.frameStep()
         event.accept()
Esempio n. 29
0
    def wheelEvent(self, event: QtGui.QWheelEvent):
        """ ChartView's wheel event handler

        Handle mouse wheel event.
        This method must handle :
            1. Change range of model by y-axis
            2. Change translate of model by x-axis

        Parameters
        ----------
        event : QtGui.QWheelEvent
            QGraphicsView's wheel event.

        """
        if self.open_file_finished:
            # if platform == "darwin":
            #     delta_x = event.pixelDelta().x()
            #     delta_y = event.pixelDelta().y()
            #     print(delta_x, delta_y)
            # else:
            delta_x = event.angleDelta().x()
            delta_y = event.angleDelta().y()

            self.model.change_x_range(delta_y)
            self.model.change_x_pos(delta_x)

        super().wheelEvent(event)
Esempio n. 30
0
    def wheelEvent(self, e: QWheelEvent):
        super(_DialLineEdit, self).wheelEvent(e)
        turns = e.angleDelta().y() // 120

        try:
            val = float(self.text())
        except ValueError:
            return

        lb = self.lb_val()
        ub = self.ub_val()

        if lb is None or ub is None:
            return

        coef = turns / 10 if turns > 0 else turns / 11

        val += val * np.sign(
            val) * coef  # increase/decrease in 10th of original value

        if val < lb:
            val = lb

        if val > ub:
            val = ub

        self.setText(f'{val:.4g}')
        self.simulation_requested.emit()
Esempio n. 31
0
 def _prev_or_next_track(self, event: QtGui.QWheelEvent) -> None:
     with self.exception_guard():
         self._connection.send(
             [
                 "script-message-to",
                 "playlist",
                 "playlist-next"
                 if event.angleDelta().y() > 0
                 else "playlist-prev",
             ]
         )
         self.refresh()
         self.render()
Esempio n. 32
0
    def wheelEvent(self, event: QtGui.QWheelEvent):
        if self.hasImage:
            factor=event.angleDelta().y()/120

            if factor>0:
                #self.transform变换,获取放缩后的倍数,在变换的基础上
                s = self.transform().scale(1.1, 1.1).mapRect(QtCore.QRectF(0, 0, 1, 1)).width()
                self.scale(1.1,1.1)

                #print(self.transform().scale(factor*10,factor*10))
            else:
                s = self.transform().scale(0.9,0.9).mapRect(QtCore.QRectF(0, 0, 1, 1)).width()
                self.scale(0.9,0.9)
            self.scale_factor = s
Esempio n. 33
0
    def _wheel(self, event: QtGui.QWheelEvent) -> None:
        with self.exception_guard():
            workspace_widgets = list(self._workspace_widgets)
            focused_widget_idx = None
            for i, workspace_widget in enumerate(workspace_widgets):
                workspace = self._widget_to_workspace(workspace_widget)
                if workspace.focused:
                    focused_widget_idx = i
                    break
            if focused_widget_idx is None:
                return

            focused_widget_idx += 1 if event.angleDelta().y() > 0 else -1
            focused_widget_idx %= len(workspace_widgets)
            focused_workspace = self._widget_to_workspace(
                workspace_widgets[focused_widget_idx]
            )
            run(["bspc", "desktop", "-f", focused_workspace.name or "?"])
Esempio n. 34
0
    def wheelEvent(self, event: QWheelEvent):
        """
        Zoom in/out on the mouse cursor
        """
        # zoom only when CTRL key pressed
        if (event.modifiers() & Qt.ControlModifier) == Qt.ControlModifier:
            steps = event.angleDelta().y() / 15 / 8

            if steps == 0:
                event.ignore()
                return

            # scale factor 1.25
            sc = pow(1.25, steps)
            self.scale(sc, sc)
            self.centerOn(self.mapToScene(event.pos()))
            event.accept()
        #  act normally on scrollbar
        else:
            # transmit event to parent class wheelevent
            super(QGraphicsView, self).wheelEvent(event)
Esempio n. 35
0
 def wheelEvent(self, event: QWheelEvent):
     self.safeScale(event.angleDelta().y())
Esempio n. 36
0
 def wheelEvent(self, event: QWheelEvent):
     zoom_factor = 1.001 ** event.angleDelta().y()
     self.zoom(zoom_factor, cursor_pos=event.pos())