def mouseMoveEvent(self, event: QMouseEvent) -> None: if self.lastPos is None: return dx = event.x() - self.lastPos.x() dy = event.y() - self.lastPos.y() smoothness = max(self.viewer.smoothness, 0.1) # viewer.world.setToIdentity() if event.buttons() == Qt.LeftButton: self.viewer.rotate(alpha=dy / smoothness, beta=0, gamma=dx / smoothness) elif event.buttons() == Qt.RightButton: self.viewer.rotate(alpha=dy / smoothness, beta=dx / smoothness, gamma=0) elif event.buttons() == Qt.MiddleButton: off_center = self.viewer.off_center[2] distance_x = off_center / self.viewer.width() distance_y = off_center / self.viewer.height() self.viewer.translate(x=-distance_x * dx, y=distance_y * dy, z=0) self.lastPos = QPoint(event.pos())
def mouseMoveEvent(self, e: QMouseEvent): if e.buttons() & (Qt.RightButton | Qt.LeftButton): print("mouseMoveEvent in Item...") self.__m_lastMouseMove = self.__cloneMouseEvent(e) self.__m_lastMouseMove.ignore() e.accept() self.update()
def mouseMoveEvent(self, ev: QMouseEvent): ''' Starts floating the complete docking area including all dock widgets, if it is not the last dock area in a floating widget Parameters ---------- ev : QMouseEvent ''' super().mouseMoveEvent(ev) if ev.buttons() != Qt.LeftButton: return if self.d.floating_widget: self.d.floating_widget.move_floating() return # If this is the last dock area in a dock container it does not make # sense to move it to a new floating widget and leave this one empty container = self.d.dock_area.dock_container() if container.is_floating() and container.visible_dock_area_count( ) == 1: return drag_distance = (self.d.drag_start_mouse_pos - ev.pos()).manhattanLength() if drag_distance >= start_drag_distance(): logger.debug('DockAreaTabBar.startFloating') self.start_floating(self.d.drag_start_mouse_pos) overlay = self.d.dock_area.dock_manager().container_overlay() overlay.set_allowed_areas(DockWidgetArea.outer_dock_areas)
def mouseMoveEvent(self, ev: QMouseEvent): if not (ev.buttons() & Qt.LeftButton) or self.d.drag_state == DragState.inactive: self.d.drag_state = DragState.inactive elif self.d.drag_state == DragState.floating_widget: # Move floating window self.d.floating_widget.move_floating() super().mouseMoveEvent(ev)
def mousePressEvent(self, event: QMouseEvent) -> None: super().mousePressEvent(event) if event.buttons() == Qt.LeftButton: self.detect_rays(event) else: self.origins.clear() self.rays.clear()
def __cloneMouseEvent(self, e: QMouseEvent): event_type = e.type() local_pos = e.localPos() button = e.button() buttons = e.buttons() modifiers = e.modifiers() clone = QMouseEvent(event_type, local_pos, button, buttons, modifiers) clone.ignore() return clone
def mouseMoveEvent(self, event: QtGui.QMouseEvent): self.window.mouse_x = event.x() self.window.mouse_y = event.y() self.window.update_coordinates() if event.buttons() == QtCore.Qt.LeftButton: self.window_width += event.y() - self.last_move_y self.window_center += event.x() - self.last_move_x self.last_move_x = event.x() self.last_move_y = event.y()
def mouseMoveEvent(self, event: QMouseEvent): if event.x() > self.width() - 20: QApplication.setOverrideCursor(Qt.SplitHCursor) else: QApplication.setOverrideCursor(Qt.ArrowCursor) if self.last_point is None or not (event.buttons() & Qt.LeftButton): return new_width = event.x() + 10 new_width = max(new_width, 150) new_width = min(new_width, 600) self.setMinimumWidth(new_width)
def mouseMoveEvent(self, event: QtGui.QMouseEvent): if event.buttons() != QtCore.Qt.LeftButton: event.ignore() return if (sub(event.pos(), self.dragStartPos) ).manhattanLength() < QtWidgets.QApplication.startDragDistance(): event.ignore() return self.move_me.emit(self) mime_data = QtCore.QMimeData() mime_data.setObjectName('frame') drag = QtGui.QDrag(self) drag.setMimeData(mime_data) drop_action = drag.exec_(QtCore.Qt.MoveAction)
def mouseMoveEvent(self, ev: QMouseEvent): ''' Mousemoveevent Parameters ---------- ev : QMouseEvent ''' if (not (ev.buttons() & Qt.LeftButton) or self.d.is_dragging_state(DragState.inactive)): self.d.drag_state = DragState.inactive return super().mouseMoveEvent(ev) # move floating window if self.d.is_dragging_state(DragState.floating_widget): self.d.floating_widget.move_floating() return super().mouseMoveEvent(ev) # move tab if self.d.is_dragging_state(DragState.tab): # Moving the tab is always allowed because it does not mean moving # the dock widget around self.d.move_tab(ev) # Maybe a fixed drag distance is better here ? drag_distance_y = abs(self.d.drag_start_mouse_position.y() - ev.pos().y()) start_dist = start_drag_distance() if drag_distance_y >= start_dist: # If this is the last dock area in a dock container with only # one single dock widget it does not make sense to move it to a new # floating widget and leave this one empty if (self.d.dock_area.dock_container().is_floating() and self.d.dock_area.open_dock_widgets_count() == 1 and self.d.dock_area.dock_container( ).visible_dock_area_count() == 1): return # Floating is only allowed for widgets that are movable if self.d.floatable: self.d.start_floating() elif (self.d.dock_area.open_dock_widgets_count() > 1 and (ev.pos() - self.d.drag_start_mouse_position).manhattanLength() >= start_dist): # Wait a few pixels before start moving self.d.drag_state = DragState.tab else: return super().mouseMoveEvent(ev)
def mouseMoveEvent(self, event: QMouseEvent): """ mouseMoveEvent Parameters ---------- event : QMouseEvent """ super().mouseMoveEvent(event) if self._scene.mouseGrabberItem() is None and event.buttons( ) == Qt.LeftButton: # Make sure shift is not being pressed if not (event.modifiers() & Qt.ShiftModifier): difference = self._click_pos - self.mapToScene(event.pos()) self.setSceneRect(self.sceneRect().translated( difference.x(), difference.y()))
def mouseDoubleClickEvent(self, event: QMouseEvent) -> None: """Mouse double click. + Middle button: Zoom to fit. + Left button: Edit point function. """ button = event.buttons() if button == Qt.MidButton: self.zoom_to_fit() elif button == Qt.LeftButton and (not self.show_target_path): self.selector.x, self.selector.y = self.__mouse_pos(event) self.__select_func() if self.selector.selection_rect: self.selected.emit(tuple(self.selector.selection_rect[:1]), True) if self.free_move == FreeMode.NoFreeMove: self.doubleclick_edit.emit(self.selector.selection_rect[0])
def mousePressEvent(self, event: QMouseEvent) -> None: """Press event. Middle button: Move canvas of view. Left button: Select the point (only first point will be catch). """ self.selector.x, self.selector.y = self.__mouse_pos(event) button = event.buttons() if button == Qt.MiddleButton: self.selector.middle_dragged = True self.browse_tracking.emit(self.selector.x, self.selector.y) elif button == Qt.LeftButton: self.selector.left_dragged = True self.__select_func() if self.selector.selection_rect: self.selected.emit(tuple(self.selector.selection_rect[:1]), True)
def mousePressEvent(self, event: QMouseEvent) -> None: super().mousePressEvent(event) # Setup NDC vertices ndc = self.viewer.screen_to_ndc(event.x(), event.y(), 1.0) self.viewer.flatline.vertices = [ndc, ndc] self.viewer.makeCurrent() self.viewer.flatline.reload() # Only show line if required if len(self.origins) == 0: self.viewer.flatline.show() else: self.viewer.flatline.hide() # Discard points if not left-click if event.buttons() == Qt.LeftButton: self.detect_rays(event) self.viewer.setMouseTracking(True) else: self.origins.clear() self.rays.clear() self.viewer.setMouseTracking(False)
def ConvertMouseEventToShortcut(event: QG.QMouseEvent): key = None shortcut_press_type = SHORTCUT_PRESS_TYPE_PRESS if event.type() == QC.QEvent.MouseButtonPress: for (qt_button, hydrus_button ) in qt_mouse_buttons_to_hydrus_mouse_buttons.items(): if event.buttons() & qt_button: key = hydrus_button break elif event.type() in (QC.QEvent.MouseButtonDblClick, QC.QEvent.MouseButtonRelease): if event.type() == QC.QEvent.MouseButtonRelease: shortcut_press_type = SHORTCUT_PRESS_TYPE_RELEASE elif event.type() == QC.QEvent.MouseButtonDblClick: shortcut_press_type = SHORTCUT_PRESS_TYPE_DOUBLE_CLICK for (qt_button, hydrus_button ) in qt_mouse_buttons_to_hydrus_mouse_buttons.items(): if event.button() == qt_button: key = hydrus_button break elif event.type() == QC.QEvent.Wheel: if event.angleDelta().y() > 0: key = SHORTCUT_MOUSE_SCROLL_UP elif event.angleDelta().y() < 0: key = SHORTCUT_MOUSE_SCROLL_DOWN if key is not None: modifiers = [] if event.modifiers() & QC.Qt.AltModifier: modifiers.append(SHORTCUT_MODIFIER_ALT) if event.modifiers() & QC.Qt.ControlModifier: modifiers.append(SHORTCUT_MODIFIER_CTRL) if event.modifiers() & QC.Qt.ShiftModifier: modifiers.append(SHORTCUT_MODIFIER_SHIFT) if event.modifiers() & QC.Qt.GroupSwitchModifier: modifiers.append(SHORTCUT_MODIFIER_GROUP_SWITCH) if event.modifiers() & QC.Qt.KeypadModifier: modifiers.append(SHORTCUT_MODIFIER_KEYPAD) shortcut = Shortcut(SHORTCUT_TYPE_MOUSE, key, shortcut_press_type, modifiers) if HG.gui_report_mode: HydrusData.ShowText('mouse event caught: ' + repr(shortcut)) return shortcut return None