def eventFilter(self, obj, event, *args, **kwargs): if event.type() == QEvent.MouseButtonPress: obj._dragging = not obj._dragging if obj._dragging: self.slidebar = self.getBreedWidget() self.slidebar.setWidgetPosition(self.getAlignment(), widget=self._display_widget) self.slidebar.show() else: try: self.slidebar.close() except AttributeError: pass return QWidget.eventFilter(self, obj, event, *args, **kwargs) # mouse move elif event.type() == QEvent.MouseMove: if not hasattr(self, 'sliderbar'): return QWidget.eventFilter(self, obj, event, *args, **kwargs) self.slidebar.update(math.fabs(obj._slider_pos)) return QWidget.eventFilter(self, obj, event, *args, **kwargs) elif event.type() == QEvent.Leave: try: self.slidebar.update(math.fabs(obj._slider_pos)) except AttributeError: pass return QWidget.eventFilter(self, obj, event, *args, **kwargs)
def eventFilter(self, source, event): if event.type() == QEvent.Close: if not self._w: return True return self._w.close() return QWidget.eventFilter(self, source, event)
def eventFilter(self, obj, event, *args, **kwargs): """ # catch init failures try: self._init_pos except AttributeError: return QWidget.eventFilter(self, obj, event, *args, **kwargs) """ # pen down if event.type() == QEvent.MouseButtonPress: self._init_pos = obj.mapToGlobal(event.pos()) obj.window().setCursor(Qt.BlankCursor) # pen move if event.type() == QEvent.MouseMove: pos = obj.mapToGlobal(event.pos()) # wrap cursor if pos.x() > self._screen_resolution: y_pos = pos.y() QCursor().setPos(QPoint(1, y_pos)) elif pos.x() < 1: y_pos = pos.y() QCursor().setPos(QPoint(self._screen_resolution - 1, y_pos)) # pen release if event.type() == QEvent.MouseButtonRelease: obj.window().unsetCursor() QCursor().setPos(self._init_pos) # return return QWidget.eventFilter(self, obj, event, *args, **kwargs)
def eventFilter(self, widget, event): if (event.type() == QEvent.KeyPress): key = event.key() if key == Qt.Key_Delete or key == Qt.Key_Backspace: for roi in self._rois: if roi.mouseHovering: roi.sigRemoveRequested.emit(roi) return True return QWidget.eventFilter(self, widget, event)
def eventFilter(self, obj, ev): e = ev.type() if obj == self: if e == QEvent.WindowDeactivate: obj.hide() elif obj == self.codeBox: if e == QEvent.KeyPress: if (ev.key(), ev.modifiers()) == (Qt.Key_Return, Qt.ControlModifier): self.apply() return True return QWidget.eventFilter(self, obj, ev)
def eventFilter(self, obj, event, *args, **kwargs): """ This will assuming that sticky drag has been turned on. Attributes: _updating (bool): essentially keeps track of the event loop. To ensure that recursion does not happen as this event filter is installed on 3 widgets. This makes sure that a click only happens once. """ # preflight if not hasattr(obj, '_invisible_widget_data'): return False # interface hide_widget = obj._invisible_widget_data['hide_widget'] parent_widget = obj._invisible_widget_data['parent'] activation_widget = obj._invisible_widget_data['activation_widget'] if event.type() == QEvent.MouseButtonPress: # preflight # ensure this is only run once per click if self._updating is True: return False # ensure that the user clicked on the right widget if obj != activation_widget and hide_widget._hide_widget_filter_INVISIBLE is False: return False # toggle display flag hide_widget._hide_widget_filter_INVISIBLE = not hide_widget._hide_widget_filter_INVISIBLE # todo something here? # print("toggly joe? %s"%obj) # hide if hide_widget._hide_widget_filter_INVISIBLE is True: if self._updating is False: if obj == activation_widget: self._updating = True region = QRegion(parent_widget.frameGeometry()) hide_widget.setMask(region) # show else: if self._updating is False: self._updating = True width = hide_widget.width() height = hide_widget.height() region = QRegion(0, 0, width, height) hide_widget.setMask(QRegion()) if event.type() == QEvent.MouseButtonRelease: self._updating = False return QWidget.eventFilter(self, obj, event, *args, **kwargs)
def eventFilter(self, widget, event): """A filter to control the zooming and panning of the figure canvas.""" # ---- Zooming if event.type() == QEvent.Wheel and not self.auto_fit_plotting: modifiers = QApplication.keyboardModifiers() if modifiers == Qt.ControlModifier: if event.angleDelta().y() > 0: self.zoom_in() else: self.zoom_out() return True else: return False # ---- Scaling elif event.type() == QEvent.Paint and self.auto_fit_plotting: self.scale_image() # ---- Panning # Set ClosedHandCursor: elif event.type() == QEvent.MouseButtonPress: if event.button() == Qt.LeftButton: QApplication.setOverrideCursor(Qt.ClosedHandCursor) self._ispanning = True self.xclick = event.globalX() self.yclick = event.globalY() # Reset Cursor: elif event.type() == QEvent.MouseButtonRelease: QApplication.restoreOverrideCursor() self._ispanning = False # Move ScrollBar: elif event.type() == QEvent.MouseMove: if self._ispanning: dx = self.xclick - event.globalX() self.xclick = event.globalX() dy = self.yclick - event.globalY() self.yclick = event.globalY() scrollBarH = self.horizontalScrollBar() scrollBarH.setValue(scrollBarH.value() + dx) scrollBarV = self.verticalScrollBar() scrollBarV.setValue(scrollBarV.value() + dy) return QWidget.eventFilter(self, widget, event)
def eventFilter(self, widget, event): """A filter to control the zooming and panning of the figure canvas.""" # ---- Zooming if event.type() == QEvent.Wheel: modifiers = QApplication.keyboardModifiers() if modifiers == Qt.ControlModifier: if event.angleDelta().y() > 0: self.zoom_in() else: self.zoom_out() return True else: return False # ---- Panning # Set ClosedHandCursor: elif event.type() == QEvent.MouseButtonPress: if event.button() == Qt.LeftButton: QApplication.setOverrideCursor(Qt.ClosedHandCursor) self._ispanning = True self.xclick = event.globalX() self.yclick = event.globalY() # Reset Cursor: elif event.type() == QEvent.MouseButtonRelease: QApplication.restoreOverrideCursor() self._ispanning = False # Move ScrollBar: elif event.type() == QEvent.MouseMove: if self._ispanning: dx = self.xclick - event.globalX() self.xclick = event.globalX() dy = self.yclick - event.globalY() self.yclick = event.globalY() scrollBarH = self.horizontalScrollBar() scrollBarH.setValue(scrollBarH.value() + dx) scrollBarV = self.verticalScrollBar() scrollBarV.setValue(scrollBarV.value() + dy) return QWidget.eventFilter(self, widget, event)