def mousePressEvent(self, event): if event.button() == Qt.RightButton: # Rewrite the mouse event to a left button event so the cursor is # moved to the location of the pointer. event = QMouseEvent(QEvent.MouseButtonPress, event.pos(), Qt.LeftButton, Qt.LeftButton, Qt.NoModifier) QPlainTextEdit.mousePressEvent(self, event)
def mouseMoveEvent(self, event: QMouseEvent): # Move is only triggered with left mouse button pressed if event.buttons() == Qt.LeftButton: self.setCursor(QCursor(Qt.ClosedHandCursor)) global_position = event.globalPos() diff = global_position - self._mouse_move_pos self._notify(SplineHandleWidgetMoveEvent(self, diff.x(), diff.y())) self._mouse_move_pos = global_position
def send_click(view, pos, button=Qt.MouseButton.LeftButton, double_click=False): mods = QApplication.keyboardModifiers() if double_click: ev = QMouseEvent(QEvent.Type.MouseButtonDblClick, pos, button, button, mods) QApplication.postEvent(view.viewport(), ev) return ev = QMouseEvent(QEvent.Type.MouseButtonPress, pos, button, button, mods) QApplication.postEvent(view.viewport(), ev) ev = QMouseEvent(QEvent.Type.MouseButtonRelease, pos, button, button, mods) QApplication.postEvent(view.viewport(), ev)
def mouseMoveEvent(self, event: Qt.QMouseEvent): if self.dragging: scale_factor = self.scale / self.fig.get_dpi() self.center[0] -= (event.x() - self.drag_start[0]) * scale_factor self.center[1] += (event.y() - self.drag_start[1]) * scale_factor self.drag_start = (event.x(), event.y()) self.do_update = True # self.update_plot() self.center_changed.emit(self.center)
def mouseMoveEvent(self, event: Qt.QMouseEvent) -> None: super().mouseMoveEvent(event) for toolbar, notches in self.toolbars_notches.items(): if not toolbar.is_notches_visible(): continue for notch in notches: line = notch.line if line.x1() - 0.5 <= event.x() <= line.x1() + 0.5: Qt.QToolTip.showText(event.globalPos(), notch.label) return
def mousePressEvent(self, event: QMouseEvent): logger.debug("MousePressEvent") if event.buttons() == Qt.LeftButton: self.__mouse_press_pos = event.globalPos() self.__command_handler.start_script() if event.modifiers() == Qt.AltModifier: self.__rubber_band.setGeometry( QRect(self.__mouse_press_pos, QSize())) self.__rubber_band.show() self.__clear_selection()
def mousePressEvent(self, event: QMouseEvent): # key == 1 left; key == 2 right pos_rel_app = event.pos() key = event.button() pos_rel_map = pos_rel_app.x() - self.mapLabel.x(), pos_rel_app.y() - self.mapLabel.y() if 0 < pos_rel_map[0] < self.mapLabel.width() and 0 < pos_rel_map[1] < self.mapLabel.height(): if key == 1: self.obj_by_click(pos_rel_map) elif key == 2: self.obj_by_click(pos_rel_map, True)
def test_widget_notes_mark_event(qtbot): w = MainWindow() qtbot.addWidget(w) w.info.open_dataset(str(gui_file)) channel_make_group(w) w.channels.button_apply.click() w.channels.new_group(test_name='eog') w.notes.update_notes(annot_psg_path) w.traces.Y_wider() w.traces.Y_wider() w.traces.action['cross_chan_mrk'].setChecked(True) w.traces.go_to_epoch(test_text_str='23:34:45') w.notes.new_eventtype(test_type_str='spindle') w.notes.action['new_event'].setChecked(True) w.notes.add_event('spindle', (24293.01, 24294.65), 'EEG Pz-Oz (scalp)') screenshot(w, 'notes_14_mark_event.png') w.notes.add_event('spindle', (24288.01, 24288.90), 'EEG Fpz-Cz (scalp)') w.notes.add_event('spindle', (24297.5, 24298.00), 'EEG Fpz-Cz (scalp)') screenshot(w, 'notes_20_mark_short_event.png') pos = w.traces.mapFromScene(QPointF(24294, 75)) mouseclick = QMouseEvent(QEvent.MouseButtonPress, pos, Qt.LeftButton, Qt.NoButton, Qt.NoModifier) w.traces.mousePressEvent(mouseclick) screenshot(w, 'notes_15_highlight_event.png') w.notes.delete_eventtype(test_type_str='spindle') w.close()
def mousePressEvent(self, event: Qt.QMouseEvent) -> None: super().mousePressEvent(event) pos = Qt.QPoint(event.pos()) if self.scroll_rect.contains(pos): self.set_position(pos.x()) self.clicked.emit(self.x_to_f(self.cursor_x, Frame), self.x_to_t(self.cursor_x, Time))
def mousePressEvent(self, event: Qt.QMouseEvent) -> None: super().mousePressEvent(event) pos = Qt.QPoint(event.pos()) if self.scroll_rect.contains(pos): self.cursor_x = pos.x() self.clicked.emit(self.x_to_f(self.cursor_x), self.x_to_t(self.cursor_x)) self.update()
def mouseReleaseEvent(self, event: Qt.QMouseEvent): super().mouseReleaseEvent(event) file_name = self.dog_sound_1 if event.button( ) == Qt.Qt.LeftButton else self.dog_sound_2 file_name = Qt.QUrl.fromLocalFile(file_name) self.player.setMedia(Qt.QMediaContent(file_name)) self.player.play()
def handle_tap_hold(self, action, tp): etype = {'start':QEvent.MouseButtonPress, 'update':QEvent.MouseMove, 'end':QEvent.MouseButtonRelease}[action] ev = QMouseEvent(etype, self.current_position(tp), tp.current_screen_position.toPoint(), Qt.LeftButton, Qt.LeftButton, Qt.NoModifier) QApplication.sendEvent(self.parent(), ev) if action == 'end': ev = QContextMenuEvent(QContextMenuEvent.Other, self.current_position(tp), tp.current_screen_position.toPoint()) # We have to use post event otherwise the popup remains an alien widget and does not receive events QApplication.postEvent(self.parent(), ev)
def __handle_widget_release(self, widget: GraphItem, mouse_event: QMouseEvent): if not mouse_event.modifiers() == Qt.ShiftModifier: self.__clear_selection() # Clear visible handles self.__clear_handles() if widget in self.__selection: self.__remove_selection(widget) else: self.__add_selection(widget)
def mouseMoveEvent(self, event: QMouseEvent): if self.__mouse_press_pos is not None: global_position = event.globalPos() diff = global_position - self.__mouse_press_pos if self.__rubber_band.isVisible(): self.__rubber_band.setGeometry( QRect(self.mapFromGlobal(self.__mouse_press_pos), event.pos()).normalized()) # Add to selection if inside rubber band remove otherwise for widget in self.__model_widget_map.values(): if self.__rubber_band.geometry().contains( widget.geometry()): self.__add_selection(widget) else: self.__remove_selection(widget) else: self.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) self.__grid_offset += diff self.__grid.set_offset(self.__grid_offset) self.__grid_widget.set_offset(self.__grid_offset) self.__grid_widget.repaint() self.__model.move_graph_relative(diff.x(), diff.y()) self.__mouse_press_pos = global_position
def handle_tap(self, tp): if self.close_open_menu(): return view = self.parent() mf = view.document.mainFrame() r = mf.hitTestContent(self.current_position(tp)) if r.linkElement().isNull(): if view.document.tap_flips_pages: threshold = view.width() / 3.0 attr = 'previous' if self.current_position(tp).x() <= threshold else 'next' getattr(view, '%s_page'%attr)() else: for etype in (QEvent.MouseButtonPress, QEvent.MouseButtonRelease): ev = QMouseEvent(etype, self.current_position(tp), tp.current_screen_position.toPoint(), Qt.LeftButton, Qt.LeftButton, Qt.NoModifier) QApplication.sendEvent(view, ev)
def send_fake_focus_if_needed(self): if self.needs_fake_focus: # We force Qt to call Focus() on the web view by sending this # event, see RenderWidgetHostViewQt::forwardEvent() and # RenderWidgetHostViewQt::handleMouseEvent() in the qtwebengine # source code to check that this both causes Focus() to be called # and has no other side-effects. This work around is needed because # without it, tabs opened by middle-clicking start out without # keyboard focus and require a click in the web view to get it. # This workaround may not be necessary once # https://bugreports.qt.io/browse/QTBUG-58515 is fixed. QApplication.sendEvent( self.focusProxy(), QMouseEvent(QMouseEvent.MouseButtonPress, QPoint(), QPoint(), QPoint(), Qt.NoButton, Qt.NoButton, Qt.NoModifier, Qt.MouseEventSynthesizedBySystem)) self.needs_fake_focus = False
def mouse_move(self, ev: QMouseEvent): if self.state == STATE.NORMAL: return pos = ev.pos() valid, relative_pos = self.pos_in_img_area(pos) if valid: relative_pos = (int(relative_pos[0] / self.scale), int(relative_pos[1] / self.scale)) if self.state == STATE.DRAW_RECTANGLE: self.draw_rect(self.start_point, relative_pos) if self.labelimg is not None: pic = self.draw_points() self.show_pic(file_name=None, content=pic) else: self.show_pic(file_name=None, content=self.panel_pic) elif self.state == STATE.DRAW_POLYGON: pass elif self.state == STATE.DRAW_ELLIPSE: pass else: raise NotImplementedError()
def mouseMoveEvent(self, event): ''' @param: event QMouseEvent ''' super().mouseMoveEvent(event) if gVar.app.plugins().processMouseMove(const.ON_TabBar, self, event): return if self.count() == 1 and gVar.app.windowCount() == 1: return if not self._dragStartPosition.isNull(): offset = 0 eventY = event.pos().y() if eventY < 0: offset = abs(eventY) elif eventY > self.height(): offset = eventY - self.height() if offset > QApplication.startDragDistance() * 3: global_ = self.mapToGlobal(self._dragStartPosition) w = QApplication.widgetAt(global_) if w: mouse = QMouseEvent(QEvent.MouseButtonRelease, w.mapFromGlobal(global_), Qt.LeftButton, Qt.LeftButton, event.modifiers()) QApplication.sendEvent(w, mouse) drag = QDrag(self) mime = QMimeData() mime.setData(self.MIMETYPE, b'') drag.setMimeData(mime) drag.setPixmap(self.tabPixmap(self.currentIndex())) if drag.exec_() == Qt.IgnoreAction: self._tabWidget.detachTabByIndex(self.currentIndex()) return
def __init__(self, widget: GraphItem, mouse_event: QMouseEvent, *args, **kwargs): super().__init__(widget, mouse_event.globalPos(), mouse_event, *args, **kwargs)
def mouseMoveEvent(self, _event: QMouseEvent): point = self.chart().mapToValue(_event.pos()) index = round(point.x()) self.wizard.mouseMove(index)
def mouse_moved(self, event: Qt.QMouseEvent) -> None: if not event.buttons() & Qt.Qt.LeftButton: self.update_labels(event.pos())
def mouseMoveEvent(self, e: QMouseEvent): # self.diff_pos = e.pos() - self.diff_pos # print(diff+self.pos()) mouse_pos = self.pos() + e.pos() self.move(mouse_pos - self.tmp_pos)
def mousePressEvent(self, e: QMouseEvent): self.tmp_pos = e.pos()
def mouseReleaseEvent(self, event: Qt.QMouseEvent): if not event.buttons() & QtCore.Qt.MiddleButton: self.dragging = False
def mousePressEvent(self, event: Qt.QMouseEvent): if event.buttons() & QtCore.Qt.MiddleButton: self.dragging = True self.drag_start = (event.x(), event.y())
def mouse_moved(self, event: Qt.QMouseEvent) -> None: if self.tracking and not event.buttons(): self.update_labels(event.pos())
def mouseReleaseEvent(self, event: Qt.QMouseEvent) -> None: super().mouseReleaseEvent(event) if event.button() == Qt.Qt.LeftButton: self.setDragMode(self.drag_mode) self.mouseReleased.emit(event)
def mousePressEvent(self, event: Qt.QMouseEvent) -> None: if event.button() == Qt.Qt.LeftButton: self.drag_mode = self.dragMode() self.setDragMode(Qt.QGraphicsView.ScrollHandDrag) super().mousePressEvent(event) self.mousePressed.emit(event)
def mouse_pressed(self, event: Qt.QMouseEvent) -> None: if event.buttons() == Qt.Qt.RightButton: self.tracking = False
def mouse_released(self, event: Qt.QMouseEvent) -> None: if event.buttons() == Qt.Qt.RightButton: self.tracking = True self.update_labels(event.pos())