Skip to content

KeySequence

Qt Base Class: QKeySequence

Signature: QKeySequence(self) -> None QKeySequence(self, k1: int, k2: int = 0, k3: int = 0, k4: int = 0) -> None QKeySequence(self, k1: Union[PySide6.QtCore.QKeyCombination, PySide6.QtCore.Qt.KeyboardModifier, PySide6.QtCore.Qt.Key], k2: Union[PySide6.QtCore.QKeyCombination, PySide6.QtCore.Qt.KeyboardModifier, PySide6.QtCore.Qt.Key] = Instance(QKeyCombination.fromCombined(0)), k3: Union[PySide6.QtCore.QKeyCombination, PySide6.QtCore.Qt.KeyboardModifier, PySide6.QtCore.Qt.Key] = Instance(QKeyCombination.fromCombined(0)), k4: Union[PySide6.QtCore.QKeyCombination, PySide6.QtCore.Qt.KeyboardModifier, PySide6.QtCore.Qt.Key] = Instance(QKeyCombination.fromCombined(0))) -> None QKeySequence(self, key: PySide6.QtGui.QKeySequence.StandardKey) -> None QKeySequence(self, key: str, format: PySide6.QtGui.QKeySequence.SequenceFormat = Instance(PySide6.QtGui.QKeySequence.SequenceFormat.NativeText)) -> None QKeySequence(self, ks: Union[PySide6.QtGui.QKeySequence, PySide6.QtCore.QKeyCombination, PySide6.QtGui.QKeySequence.StandardKey, str, int]) -> None

Base classes

Name Children Inherits
QKeySequence
PySide6.QtGui
QKeySequence(self) -> None

⋔ Inheritance diagram

graph TD
  1473245539696["gui.KeySequence"]
  1473289193952["QtGui.QKeySequence"]
  1473291690208["Shiboken.Object"]
  140713234304496["builtins.object"]
  1473289193952 --> 1473245539696
  1473291690208 --> 1473289193952
  140713234304496 --> 1473291690208

🛈 DocStrings

Bases: QKeySequence

Encapsulates a key sequence as used by shortcuts.

Source code in prettyqt\gui\keysequence.py
class KeySequence(QtGui.QKeySequence):
    """Encapsulates a key sequence as used by shortcuts."""

    def __init__(self, *args, **kwargs):
        match args:
            case (str(),) if args[0] in STANDARD_KEYS:
                super().__init__(STANDARD_KEYS[args[0]])
            case _:
                super().__init__(*args, **kwargs)

    def __str__(self):
        return self.toString()

    def __repr__(self):
        return get_repr(self, self.toString())

    def __bool__(self):
        return not self.isEmpty()

    def __reduce__(self):
        return type(self), (self.toString(),)

    def __format__(self, format_spec: SequenceFormatStr):
        if format_spec in SEQUENCE_FORMAT:
            return self.toString(SEQUENCE_FORMAT[format_spec])
        return super().__format__(format_spec)

    def __getitem__(self, item) -> core.KeyCombination:
        item = super().__getitem__(item)
        return core.KeyCombination(item)

    @property
    def _toString(self) -> str:
        return self.toString()

    __match_args__ = ("_toString",)

    def get_matches(self, seq: QtGui.QKeySequence | str) -> SequenceMatchStr:
        if isinstance(seq, str):
            seq = KeySequence(seq)
        return SEQUENCE_MATCHES.inverse[self.matches(seq)]

    @functools.singledispatchmethod
    @classmethod
    def to_shortcut_str(cls, key: constants.Key, mod: int = 0) -> str:
        return cls(mod | key).toString()

    @to_shortcut_str.register
    @classmethod
    def _(cls, key: core.QKeyCombination) -> str:
        return cls(key).toString()

    @classmethod
    def get_key_bindings(cls, button) -> list[Self]:
        return [cls(i) for i in cls.keyBindings(button)]