def keyPressEvent(self, e: QtGui.QKeyEvent) -> None:
        if self.completer.popup().isVisible():
            key = e.key()
            if key in (Qt.Key_Enter, Qt.Key_Return):
                e.ignore()
                return

        super().keyPressEvent(e)

        text_before_cursor = self.text_before_cursor()
        # print('text', self.text_before_cursor())
        if text_before_cursor != self.completer.currentCompletion():
            if text_before_cursor != self.completer.completionPrefix():
                text_before_cursor, self.completer.currentCompletion()
                self.completer.setCompletionPrefix(text_before_cursor)
                self.completer.popup().setCurrentIndex(
                    self.completer.completionModel().index(0, 0))

                cursor_rectangle = self.cursorRect()
                popup = self.completer.popup()
                cursor_rectangle.setWidth(
                    popup.sizeHintForColumn(0) +
                    popup.verticalScrollBar().sizeHint().width())
                self.completer.complete(cursor_rectangle)
        else:
            self.completer.popup().hide()
示例#2
0
 def keyReleaseEvent(self, event: QKeyEvent):
     if event.isAutoRepeat():
         event.ignore()
         return
     key = event.key()
     if key in self.keys:
         self.keys[key] = False
示例#3
0
    def keyPressEvent(self, event: QKeyEvent):
        if self._completedAndSelected and self.handledCompletedAndSelected(
                event):
            return

        self._completedAndSelected = False
        if self._completer.popup().isVisible():
            ignoredKeys = [
                Qt.Key_Up,
                Qt.Key_Down,
                Qt.Key_Enter,
                Qt.Key_Return,
                Qt.Key_Tab,
                Qt.Key_Escape,
            ]
            if event.key() in ignoredKeys:
                event.ignore()
                return
            self._completer.popup().hide()

        super().keyPressEvent(event)
        if not self._enableAutoCompletion:
            return

        ctrlOrShift = (event.modifiers() & Qt.ShiftModifier == Qt.ShiftModifier
                       or event.modifiers() & Qt.ControlModifier
                       == Qt.ControlModifier)

        if ctrlOrShift and not event.text():
            return

        if self.textCursor().atBlockEnd():
            self.suggestCompletions()
示例#4
0
 def keyPressEvent(self, event: QKeyEvent):
     if event.key() == QtCore.Qt.Key_Space:
         image_rect: QRectF = self._pixmap.sceneBoundingRect()
         if self.current_tool == SELECTION_TOOL.POLYGON and self._current_polygon:
             points = self._current_polygon.points
             self._polygon_guide_line.hide()
             self.setDragMode(QGraphicsView.ScrollHandDrag)
             if len(points) <= 2:
                 self._current_polygon.delete_item()
             self.current_tool = SELECTION_TOOL.POINTER
         elif self.current_tool == SELECTION_TOOL.EXTREME_POINTS and \
                 self._extreme_points.full():
             points = []
             image_offset = QPointF(image_rect.width() / 2,
                                    image_rect.height() / 2)
             for pt in self._extreme_points.queue:
                 pt: EditablePolygonPoint
                 center = pt.sceneBoundingRect().center()
                 x = math.floor(center.x() + image_offset.x())
                 y = math.floor(center.y() + image_offset.y())
                 points.append([x, y])
             self.points_selection_sgn.emit(points)
             self.current_tool = SELECTION_TOOL.POINTER
     else:
         event.ignore()
示例#5
0
 def keyPressEvent(self, a0: QKeyEvent):
     '''
     键盘监听事件
     '''
     if a0.key() == Qt.Key_Escape:
         a0.ignore()
     else:
         a0.accept()
示例#6
0
    def keyPressEvent(self, event: QKeyEvent):
        super().keyPressEvent(event)

        if event.key() in [Qt.Key_Space, Qt.Key_Enter]:
            event.accept()
            self._capture_requested()
        else:
            event.ignore()
示例#7
0
 def keyPressEvent(self, event: QtG.QKeyEvent):
     """Handles “Ctrl+A“ and “Ctrl+C“ actions."""
     if utils.gui.event_matches_action(event, self._select_all_action):
         self.select_all()
         event.ignore()
     elif utils.gui.event_matches_action(event, self._copy_paths_action):
         self.copy_image_paths()
         event.ignore()
     super().keyPressEvent(event)
示例#8
0
 def keyPressEvent(self, event: QKeyEvent):
     if self.window().is_dirty() \
             and (event.matches(QKeySequence.MoveToNextLine) or event.matches(QKeySequence.MoveToPreviousLine)):
         veto = self.window().central_widget.promptToSave()
         if not veto:
             QTreeWidget.keyPressEvent(self, event)
         else:
             event.ignore()
     else:
         QTreeWidget.keyPressEvent(self, event)
示例#9
0
 def keyPressEvent(self, event: QKeyEvent):
     if self.window().is_dirty() \
             and (event.matches(QKeySequence.MoveToNextLine) or event.matches(QKeySequence.MoveToPreviousLine)):
         veto = self.window().central_widget.promptToSave()
         if not veto:
             QTreeWidget.keyPressEvent(self, event)
         else:
             event.ignore()
     else:
         QTreeWidget.keyPressEvent(self, event)
示例#10
0
 def keyPressEvent(self, event: QtG.QKeyEvent):
     if event.key() == QtC.Qt.Key_Up and self.value(
     ) is not None and self.value() < self.validator().top():
         self.set_value(self.value() + 1)
         event.ignore()
     elif event.key() == QtC.Qt.Key_Down and self.value(
     ) is not None and self.value() > self.validator().bottom():
         self.set_value(self.value() - 1)
         event.ignore()
     super().keyPressEvent(event)
示例#11
0
    def keyPressEvent(self, event: QKeyEvent):
        super().keyPressEvent(event)

        if event.key() == Qt.Key_Space:
            event.accept()
            self.accept.emit()
        elif event.key() == Qt.Key_Escape:
            event.accept()
            self.reject.emit()
        else:
            event.ignore()
示例#12
0
    def keyPressEvent(self, event: QtG.QKeyEvent):
        if self._completer.popup().isVisible() and event.key(
        ) in self._keys_to_ignore:
            event.ignore()
            return

        super().keyPressEvent(event)
        completion_prefix = self._text_under_cursor()
        if completion_prefix != self._completer.completionPrefix():
            self._update_completer_popup_items(completion_prefix)
        if len(event.text()) > 0 and len(completion_prefix) > 0:
            self._completer.complete()
        if len(completion_prefix) == 0:
            self._completer.popup().hide()
示例#13
0
 def keyPressEvent(self, a0: QKeyEvent) -> None:
     #print(a0.text())
     modifiers = QApplication.keyboardModifiers()
     alt = False
     if not modifiers & Qt.AltModifier:
         QTextEdit.keyPressEvent(self, a0)
         return
     else:
         a0.ignore()
         print("Alt-", end='')
         print(a0.text())
         if a0.key() == Qt.Key_Return or a0.key() == Qt.Key_Enter:
             print("ENter")
         else:
             self.PickDict.emit(a0.text().lower())
示例#14
0
    def keyPressEvent(self, event: QKeyEvent):  # pylint: disable=C0103
        """_summary_

        Args:
            event (QKeyEvent): _description_
        """
        if event.key() == Qt.Key_Backspace:
            cur = self.textCursor()
            cur.setPosition(cur.position() - event.count(), QTextCursor.KeepAnchor)
        if not (event.key() in [Qt.Key_C, Qt.Key_Z] and \
                event.modifiers() & Qt.ControlModifier) and \
                GTextEditor.__has_marker(self.textCursor().selectedText()):
            event.ignore()
            return None
        return super().keyPressEvent(event)
示例#15
0
 def keyPressEvent(self, event: QtG.QKeyEvent):
     if utils.gui.event_matches_action(event, self._copy_all_tags_action):
         self._on_copy_all()
         event.ignore()
     elif utils.gui.event_matches_action(event, self._copy_tags_action):
         self._on_copy_tags()
         event.ignore()
     elif utils.gui.event_matches_action(event, self._copy_label_action):
         self._on_copy_label()
         event.ignore()
     elif utils.gui.event_matches_action(event, self._delete_item_action):
         self._on_delete_item()
         event.ignore()
     elif utils.gui.event_matches_action(event, self._insert_tag_action):
         self._on_insert_tag()
         event.ignore()
     super().keyPressEvent(event)
示例#16
0
    def keyPressEvent(self, event: QKeyEvent) -> None:
        """Process key events. The :py:class:`QImageView` supports
        the following keys:

        ?: debug
        t: debug toolbox
        """
        key, text = event.key(), event.text()
        print(f"debug: QDebug[{type(self).__name__}].keyPressEvent: "
              f"key={key}, text={text}")
        if text == '?':
            self.debug()
        elif key == Qt.Key_T:  # Debug Toolbox
            Toolbox.debug_register()
        elif hasattr(super(), 'keyPressEvent'):
            super().keyPressEvent(event)
        else:
            event.ignore()
示例#17
0
    def keyPressEvent(self, e: QKeyEvent) -> None:
        """Override keyPressEvent to ignore Return key presses.

        If this widget is focused, we are in passthrough key mode, and
        Enter/Shift+Enter/etc. will cause QLineEdit to think it's finished
        without command_accept to be called.
        """
        text = self.text()
        if text in modeparsers.STARTCHARS and e.key() == Qt.Key_Backspace:
            e.accept()
            modeman.leave(self._win_id, usertypes.KeyMode.command,
                          'prefix deleted')
            return
        if e.key() == Qt.Key_Return:
            e.ignore()
            return
        else:
            super().keyPressEvent(e)
 def keyPressEvent(self, event: QKeyEvent):
     if event.key() == Qt.Key_V:
         if event.modifiers() == Qt.ControlModifier:
             self.add_clip_content()
             event.accept()
     if event.key() == Qt.Key_R:
         if event.modifiers() == Qt.ControlModifier:
             if self.tree_widget_content_view.topLevelItemCount():
                 self.tree_widget_content_view.collapseAll()
             event.accept()
     if event.key() == Qt.Key_E:
         if event.modifiers() == Qt.ControlModifier:
             if self.tree_widget_content_view.topLevelItemCount():
                 self.tree_widget_content_view.expandAll()
             event.accept()
     if event.key() == Qt.Key_Delete:
         self.delete_contents()
     else:
         event.ignore()
示例#19
0
    def keyPressEvent(self, event: QKeyEvent):
        if type(event) == QKeyEvent:

            # here accept the event and do something
            if (event.key() == Qt.Key_W):
                print("w")
                runMotors("w")
            elif (event.key() == Qt.Key_A):
                runMotors("a")
                print("a")
            elif (event.key() == Qt.Key_S):
                runMotors("s")
                print("s")
            elif (event.key() == Qt.Key_D):
                runMotors("d")
                print("d")
            event.accept()
        else:
            event.ignore()
示例#20
0
    def keyPressEvent(self, event: QKeyEvent) -> None:
        """Process key events. The :py:class:`ItemAdapter` supports
        the following keys:

        C: clear the currently selected entry

        Note: in a :py:class:`QComboBox` this event is only received
        if the combobox is closed (not while currently selecting an entry).
        """
        key = event.key()
        LOG.debug("ItemAdapter[%s].keyPressEvent: key=%d",
                  type(self).__name__, key)
        if key == Qt.Key_C:  # clear
            self._setCurrentItem(None)
        elif key == Qt.Key_Y:  # no itemToText function (inherit from super)
            self.setItemToText(None)
        elif key == Qt.Key_Z:  # simple str() as itemToText function (debug)
            self.setItemToText(str)
        elif hasattr(super(), 'keyPressEvent'):
            super().keyPressEvent(event)
        else:
            event.ignore()
示例#21
0
    def keyPressEvent(self, event: QtG.QKeyEvent):
        # noinspection PyTypeChecker
        if event.key() in (QtC.Qt.Key_Return, QtC.Qt.Key_Enter
                           ) and event.modifiers() & QtC.Qt.ControlModifier:
            self.validated.emit()
            event.ignore()
        elif self._completer.popup().isVisible() and event.key(
        ) in self._keys_to_ignore:
            event.ignore()
            return

        super().keyPressEvent(event)
        completion_prefix = self._text_under_cursor()
        if completion_prefix != self._completer.completionPrefix():
            self._update_completer_popup_items(completion_prefix)
        if len(event.text()) > 0 and len(completion_prefix) > 0:
            rect = self.cursorRect()
            rect.setWidth(
                self._completer.popup().sizeHintForColumn(0) +
                self._completer.popup().verticalScrollBar().sizeHint().width())
            self._completer.complete(rect)
        if len(completion_prefix) == 0:
            self._completer.popup().hide()
示例#22
0
 def keyPressEvent(self, event: QtG.QKeyEvent):
     # noinspection PyProtectedMember
     if event.key() in [QtC.Qt.Key_Return, QtC.Qt.Key_Enter]:
         self.enter_pressed.emit(self.text())
         event.ignore()
     elif utils.gui.event_matches_action(
             event,
             self.parent()._output._clear_action):
         self.cleared_triggered.emit()
         event.ignore()
     elif event.key() == QtC.Qt.Key_Up:
         self.up_pressed.emit()
         event.ignore()
     elif event.key() == QtC.Qt.Key_Down:
         self.down_pressed.emit()
         event.ignore()
     super().keyPressEvent(event)
示例#23
0
 def keyPressEvent(self, event: QKeyEvent):
     if event.key() == Qt.Key_Delete:
         self.deletion_wanted.emit()
         event.ignore()
     else:
         super().keyPressEvent(event)
示例#24
0
 def keyPressEvent(self, event: QKeyEvent):
     if event.key() == Qt.Key_Enter:
         event.ignore()
     else:
         event.accept()
示例#25
0
 def keyPressEvent(self, event: QtG.QKeyEvent):
     # Prevent event from propagating to the search button
     if event.key() in [QtC.Qt.Key_Return, QtC.Qt.Key_Enter]:
         event.ignore()
     else:
         super().keyPressEvent(event)
    def keyPressEvent(self, event: QKeyEvent) -> None:
        # pylint: disable=too-many-branches
        """Process special keys for this widget.  Allow moving selected entry
        using the cursor keys. Deselect unit using the Escape key.

        Space: toggle display of tooltips
        'C': toggle color scale
        'L': toggle local contrast
        
        Parameters
        ----------
        event: QKeyEvent

        """
        unit = self._unit
        position = (None if self._position is None else QPoint(self._position))
        key = event.key()
        shiftPressed = event.modifiers() & Qt.ShiftModifier

        # Space will toggle display of tooltips
        if key == Qt.Key_Space:
            self.setToolTip(not self.toolTipActive)
        # 'C' will toggle color scale
        elif key == Qt.Key_C:
            self.setColorScale(not self.colorScale())
        # 'L' will toggle local contrast
        elif key == Qt.Key_L:
            self.setLocalContrast(not self.localContrast())
        # 'D' will toggle details
        elif key == Qt.Key_D:
            self._showDetails = not self._showDetails
            self.update()
        # Arrow keyes will move the selected entry
        elif position is not None and not shiftPressed:
            if key == Qt.Key_Left:
                position.setX(max(0, position.x() - 1))
            elif key == Qt.Key_Up:
                position.setY(max(0, position.y() - 1))
            elif key == Qt.Key_Right:
                position.setX(min(self._unitSize.width() - 1,
                                  position.x() + 1))
            elif key == Qt.Key_Down:
                position.setY(
                    min(self._unitSize.height() - 1,
                        position.y() + 1))
            elif key == Qt.Key_Escape:
                self._position = None
            else:
                event.ignore()
            self.setPosition(position)
        elif unit is not None:
            row = self._unit // self._columns
            col = self._unit % self._columns
            if key == Qt.Key_Left:
                col = max(col - 1, 0)
            elif key == Qt.Key_Up:
                row = max(row - 1, 0)
            elif key == Qt.Key_Right:
                col = min(col + 1, self._columns - 1)
            elif key == Qt.Key_Down:
                row = min(row + 1, self._rows - 1)
            elif key == Qt.Key_Escape:
                unit = None
            else:
                event.ignore()
            unit = row * self._columns + col
            if unit >= self._units:
                unit = self._unit
            self.setUnit(unit)
        else:
            event.ignore()
示例#27
0
    def keyPressEvent(self, e: QKeyEvent):
        if e.key() == Qt.Key_Escape:
            self.entry_completed.emit("", "", True)
            e.ignore()

        super().keyPressEvent(e)
示例#28
0
 def keyPressEvent(self, ev: QKeyEvent):
     if ev.key() == Qt.Key_Return:
         ev.ignore()
         return
示例#29
0
 def keyPressEvent(self, event: QKeyEvent):
     if event.key() == Qt.Key_Enter:
         event.ignore()
     else:
         event.accept()
示例#30
0
    def keyPressEvent(self, event: QtGui.QKeyEvent):
        if event.type() != QtCore.QEvent.KeyPress: event.ignore()
        else:
            # if self.mode.value == QwwMode.EPUB.value:
            # 	event.ignore()
            if event.key() == QtCore.Qt.Key_Control:
                self.ctrlOn = True
                return

            if self.ctrlOn is True:
                print('KeyPress + Ctrl')
                if event.key() in [QtCore.Qt.Key_0]:
                    super().page().mainFrame().setZoomFactor(1)
                if event.key() in [QtCore.Qt.Key_Plus]:
                    super().page().mainFrame().setZoomFactor(
                        super().page().mainFrame().zoomFactor() * 1.10)
                if event.key() in [QtCore.Qt.Key_Minus]:
                    super().page().mainFrame().setZoomFactor(
                        super().page().mainFrame().zoomFactor() * 0.90)

                if self.mode.value == QwwMode.CBZ.value:
                    ""
                elif self.mode.value == QwwMode.EPUB.value:
                    if event.key() in [QtCore.Qt.Key_C]:
                        pyperclip.copy(super().page().selectedText())
            else:
                try:
                    if self.mode.value == QwwMode.CBZ.value:
                        zoom = super().page().mainFrame().zoomFactor()
                        if zoom != 1:
                            position = super().page().mainFrame(
                            ).scrollPosition()
                            if event.key() in [
                                    QtCore.Qt.Key_PageDown,
                                    QtCore.Qt.Key_PageUp
                            ]:
                                super().page().mainFrame().setZoomFactor(1)
                                self.updatePositionCbz(0)
                            elif event.key() in [QtCore.Qt.Key_Left]:
                                super().page().mainFrame().setScrollPosition(
                                    QtCore.QPoint(position.x() - 5,
                                                  position.y()))
                            elif event.key() in [QtCore.Qt.Key_Right]:
                                super().page().mainFrame().setScrollPosition(
                                    QtCore.QPoint(position.x() + 5,
                                                  position.y()))
                            elif event.key() in [QtCore.Qt.Key_Up]:
                                super().page().mainFrame().setScrollPosition(
                                    QtCore.QPoint(position.x(),
                                                  position.y() - 5))
                            elif event.key() in [QtCore.Qt.Key_Down]:
                                super().page().mainFrame().setScrollPosition(
                                    QtCore.QPoint(position.x(),
                                                  position.y() + 5))
                            return
                        passed = 0
                        if event.key() in [
                                QtCore.Qt.Key_Left, QtCore.Qt.Key_Up,
                                QtCore.Qt.Key_PageUp
                        ]:
                            passed = -1
                        elif event.key() in [
                                QtCore.Qt.Key_Right, QtCore.Qt.Key_Down,
                                QtCore.Qt.Key_PageDown
                        ]:
                            passed = 1
                        self.updatePositionCbz(passed)
                    elif self.mode.value == QwwMode.EPUB.value:
                        passed = 0
                        if event.key() in [
                                QtCore.Qt.Key_Left, QtCore.Qt.Key_Up,
                                QtCore.Qt.Key_PageUp
                        ]:
                            passed = super().height() * -1
                        elif event.key() in [
                                QtCore.Qt.Key_Right, QtCore.Qt.Key_Down,
                                QtCore.Qt.Key_PageDown
                        ]:
                            passed = super().height()
                        self.updatePositionEpub(passed)
                except Exception:
                    traceback.print_exc()
示例#31
0
    def keyPressEvent(self, e: QKeyEvent):
        if e.key() == Qt.Key_Escape:
            self.some_signal.emit("", "", True)
            e.ignore()

        super().keyPressEvent(e)