Sur cette page

QKeySequence Class

La classe QKeySequence encapsule une séquence de touches utilisée par les raccourcis. Plus d'informations...

En-tête : #include <QKeySequence>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui

Types publics

enum SequenceFormat { NativeText, PortableText }
enum SequenceMatch { NoMatch, PartialMatch, ExactMatch }
enum StandardKey { AddTab, Back, Backspace, Bold, Close, …, Cancel }

Fonctions publiques

QKeySequence()
QKeySequence(QKeySequence::StandardKey key)
QKeySequence(const QString &key, QKeySequence::SequenceFormat format = NativeText)
QKeySequence(QKeyCombination k1, QKeyCombination k2 = QKeyCombination::fromCombined(0), QKeyCombination k3 = QKeyCombination::fromCombined(0), QKeyCombination k4 = QKeyCombination::fromCombined(0))
QKeySequence(int k1, int k2 = 0, int k3 = 0, int k4 = 0)
QKeySequence(const QKeySequence &keysequence)
~QKeySequence()
int count() const
bool isEmpty() const
QKeySequence::SequenceMatch matches(const QKeySequence &seq) const
void swap(QKeySequence &other)
QString toString(QKeySequence::SequenceFormat format = PortableText) const
operator QVariant() const
bool operator!=(const QKeySequence &other) const
bool operator<(const QKeySequence &other) const
bool operator<=(const QKeySequence &other) const
QKeySequence &operator=(QKeySequence &&other)
QKeySequence &operator=(const QKeySequence &other)
bool operator==(const QKeySequence &other) const
bool operator>(const QKeySequence &other) const
bool operator>=(const QKeySequence &other) const
QKeyCombination operator[](uint index) const

Membres publics statiques

QKeySequence fromString(const QString &str, QKeySequence::SequenceFormat format = PortableText)
QList<QKeySequence> keyBindings(QKeySequence::StandardKey key)
QList<QKeySequence> listFromString(const QString &str, QKeySequence::SequenceFormat format = PortableText)
QString listToString(const QList<QKeySequence> &list, QKeySequence::SequenceFormat format = PortableText)
QKeySequence mnemonic(const QString &text)
size_t qHash(const QKeySequence &key, size_t seed = 0)
void qt_set_sequence_auto_mnemonic(bool b)
QDataStream &operator<<(QDataStream &stream, const QKeySequence &sequence)
QDataStream &operator>>(QDataStream &stream, QKeySequence &sequence)

Description détaillée

Dans sa forme la plus courante, une séquence de touches décrit une combinaison de touches qui doivent être utilisées ensemble pour effectuer une action. Les séquences de touches sont utilisées avec les objets QAction pour spécifier les raccourcis clavier à utiliser pour déclencher des actions.

Les séquences de touches peuvent être construites de trois manières différentes pour être utilisées comme raccourcis clavier :

  • Pour les raccourcis standard, une adresse standard key peut être utilisée pour demander la séquence de touches spécifique à la plate-forme associée à chaque raccourci.
  • Pour les raccourcis personnalisés, il est possible d'utiliser des chaînes lisibles par l'homme, telles que "Ctrl+X", qui peuvent être traduites en raccourcis appropriés pour les utilisateurs de différentes langues. Les traductions sont effectuées dans le contexte "QShortcut".
  • Pour les raccourcis codés en dur, des codes de touches entières peuvent être spécifiés avec une combinaison de valeurs définies par les valeurs de l'énumération Qt::Key et Qt::KeyboardModifier. Chaque code clé se compose d'une seule valeur Qt::Key et de zéro ou plusieurs modificateurs, tels que Qt::ShiftModifier, Qt::ControlModifier, Qt::AltModifier et Qt::MetaModifier.

Par exemple, Ctrl P peut être une séquence utilisée comme raccourci pour l'impression d'un document et peut être spécifié de l'une des manières suivantes :

QKeySequence(QKeySequence::Print);
QKeySequence(tr("Ctrl+P"));
QKeySequence(tr("Ctrl+p"));
QKeySequence(Qt::CTRL | Qt::Key_P);
QKeySequence(Qt::CTRL + Qt::Key_P); // deprecated

Notez que, pour les lettres, la casse utilisée dans la chaîne de spécification n'a pas d'importance. Dans les exemples ci-dessus, l'utilisateur n'a pas besoin de maintenir la touche Shift enfoncée pour activer un raccourci spécifié par "Ctrl+P". Toutefois, pour d'autres touches, l'utilisation de Shift en tant que touche modificatrice supplémentaire non spécifiée peut prêter à confusion pour les utilisateurs d'une application dont les claviers ont des dispositions différentes de celles utilisées par les développeurs. Voir la section Keyboard Layout Issues ci-dessous pour plus de détails.

Il est préférable d'utiliser des raccourcis standard dans la mesure du possible. Lorsque vous créez des séquences de touches pour des raccourcis non standard, vous devez utiliser des chaînes lisibles par l'homme plutôt que des valeurs entières codées en dur.

Les objets QKeySequence peuvent être sérialisés en chaînes lisibles par l'homme à l'aide de la fonction toString().

Une autre façon de spécifier des codes de touches codés en dur est d'utiliser le point de code Unicode du caractère ; par exemple, 'A' donne la même séquence de touches que Qt::Key_A.

Remarque : sur les plates-formes Apple, les références à "Ctrl", Qt::CTRL, Qt::Key_Control et Qt::ControlModifier correspondent aux touches Command du clavier Macintosh, et les références à "Meta", Qt::META, Qt::Key_Meta et Qt::MetaModifier correspondent aux touches Control. En fait, les développeurs peuvent utiliser les mêmes descriptions de raccourcis sur toutes les plateformes, et leurs applications fonctionneront automatiquement comme prévu sur les plateformes Apple.

Raccourcis standard

QKeySequence définit de nombreux standard keyboard shortcuts pour réduire l'effort nécessaire à la mise en place d'actions dans une application type. Le tableau ci-dessous présente quelques séquences de touches courantes qui sont souvent utilisées pour ces raccourcis standard par des applications sur quatre plates-formes largement répandues. Notez que sur les plateformes Apple, la valeur Ctrl correspond aux touches Command du clavier Macintosh, et la valeur Meta correspond aux touches Control.

StandardKeyWindowsPlateformes AppleKDE PlasmaGNOME
HelpContentsF1Ctrl+ ?F1F1
WhatsThisMaj+F1Maj+F1Maj+F1Maj+F1
OuvrirCtrl+OCtrl+OCtrl+OCtrl+O
FermerCtrl+F4, Ctrl+WCtrl+W, Ctrl+F4Ctrl+WCtrl+W
SauvegarderCtrl+SCtrl+SCtrl+SCtrl+S
QuitterCtrl+QCtrl+QCtrl+Q
SaveAsCtrl+Maj+SCtrl+Maj+SCtrl+Maj+SCtrl+Maj+S
NouveauCtrl+NCtrl+NCtrl+NCtrl+N
EffacerSupprimerAvant Supprimer, Meta+DSuppr, Ctrl+DSuppr, Ctrl+D
CouperCtrl+X, Shift+DelCtrl+X, Meta+KCtrl+X, F20, Maj+Suppr.Ctrl+X, F20, Shift+Del
CopierCtrl+C, Ctrl+InsCtrl+CCtrl+C, F16, Ctrl+InsCtrl+C, F16, Ctrl+Ins
CollerCtrl+V, Shift+InsCtrl+V, Méta+YCtrl+V, F18, Maj+InsCtrl+V, F18, Maj+Ins
PréférencesCtrl+,Ctrl+Maj+,
AnnulerCtrl+Z, Alt+Retour arrièreCtrl+ZCtrl+Z, F14Ctrl+Z, F14
RefaireCtrl+Y, Shift+Ctrl+Z, Alt+Shift+BackspaceCtrl+Maj+ZCtrl+Maj+ZCtrl+Maj+Z
RetourAlt+Gauche, Retour arrièreCtrl+[Alt+GaucheAlt+Gauche
AvancerAlt+Droite, Maj+Retour arrièreCtrl+]Alt+DroiteAlt+Droit
RafraîchirF5F5F5Ctrl+R, F5
ZoomInCtrl+PlusCtrl+PlusCtrl+PlusCtrl+Plus
ZoomOutCtrl+MinusCtrl+MinusCtrl+MinusCtrl+Minus
FullScreenF11, Alt+EntréeCtrl+Meta+FF11, Ctrl+Shift+FCtrl+F11
ImprimerCtrl+PCtrl+PCtrl+PCtrl+P
AddTabCtrl+TCtrl+TCtrl+Shift+N, Ctrl+TCtrl+T
NextChildCtrl+Tab, Avancer, Ctrl+F6Ctrl+}, Avancer, Ctrl+TabCtrl+Tab, Avance, Ctrl+CommaCtrl+Tab, Avance
PreviousChildCtrl+Shift+Tab, Retour, Ctrl+Shift+F6Ctrl+{, Retour, Ctrl+Shift+TabCtrl+Shift+Tab, Retour, Ctrl+PeriodCtrl+Shift+Tab, Retour
ChercherCtrl+FCtrl+FCtrl+FCtrl+F
FindNextF3, Ctrl+GCtrl+GF3Ctrl+G, F3
FindPreviousMaj+F3, Ctrl+Maj+GCtrl+Shift+GMaj+F3Ctrl+Shift+G, Shift+F3
RemplacerCtrl+H(aucun)Ctrl+RCtrl+H
SelectAllCtrl+ACtrl+ACtrl+ACtrl+A
DésélectionnerCtrl+Maj+ACtrl+Maj+A
GrasCtrl+BCtrl+BCtrl+BCtrl+B
ItaliqueCtrl+ICtrl+ICtrl+ICtrl+I
SoulignéCtrl+UCtrl+UCtrl+UCtrl+U
MoveToNextCharDroiteDroite, Meta+FDroiteDroite
MoveToPreviousCharGaucheGauche, Meta+BGaucheGauche
MoveToNextWordCtrl+DroiteAlt+DroiteCtrl+DroitCtrl+Droit
MoveToPreviousWordCtrl+GaucheAlt+GaucheCtrl+GaucheCtrl+Gauche
MoveToNextLineBasBas, Meta+NBasBas, Meta+N
MoveToPreviousLineHautHaut, Meta+PVers le hautHaut
MoveToNextPagePgDownPgDown, Alt+PgDown, Meta+Down, Meta+PgDown, Meta+VPgDownPgDown
MoveToPreviousPagePgUpPgUp, Alt+PgUp, Meta+Up, Meta+PgUpPgUpPgUp
MoveToStartOfLineAccueilCtrl+Gauche, Méta+GaucheAccueilAccueil
MoveToEndOfLineFinCtrl+Droit, Méta+DroitFin, Ctrl+EFin, Ctrl+E
MoveToStartOfBlock(aucun)Alt+Haut, Méta+A(aucun)(aucun)
MoveToEndOfBlock(aucun)Alt+Bas, Meta+E(aucun)(aucun)
MoveToStartOfDocumentCtrl+AccueilCtrl+Haut, AccueilCtrl+HomeCtrl+Home
MoveToEndOfDocumentCtrl+FinCtrl+Bas, FinCtrl+FinCtrl+Fin
SelectNextCharMaj+DroiteMaj+DroiteMaj+DroiteMaj+Droite
SelectPreviousCharMaj+GaucheMaj+gaucheMaj+GaucheMaj+Gauche
SelectNextWordCtrl+Maj+DroiteAlt+Maj+DroiteCtrl+Maj+DroiteCtrl+Maj+Droite
SelectPreviousWordCtrl+Maj+GaucheAlt+Maj+GaucheCtrl+Maj+GaucheCtrl+Maj+Gauche
SelectNextLineMaj+BasMaj+BasMaj+BasMaj+Bas
SelectPreviousLineMaj+HautMaj+HautMaj+HautMaj+Haut
SelectNextPageShift+PgDownShift+PgDownShift+PgDownShift+PgDown
SelectPreviousPageMaj+PgUpMaj+PgUpMaj+PgUpShift+PgUp
SelectStartOfLineMaj+HomeCtrl+Maj+GaucheMaj+HomeShift+Home
SelectEndOfLineMaj+FinCtrl+Maj+DroiteMaj+FinMaj+Fin
SelectStartOfBlock(aucun)Alt+Maj+Haut, Meta+Maj+A(aucun)(aucun)
SelectEndOfBlock(aucun)Alt+Shift+Bas, Meta+Shift+E(aucune)(aucun)
SelectStartOfDocumentCtrl+Shift+HomeCtrl+Shift+Haut, Shift+HomeCtrl+Maj+HomeCtrl+Shift+Home
SelectEndOfDocumentCtrl+Maj+FinCtrl+Maj+Bas, Maj+FinCtrl+Maj+FinCtrl+Maj+Fin
DeleteStartOfWordCtrl+Espace arrièreAlt+Espace arrièreCtrl+Espace arrièreCtrl+Espace arrière
DeleteEndOfWordCtrl+Suppr(aucune)Ctrl+DelCtrl+Suppr
DeleteEndOfLine(aucune)(aucun)Ctrl+KCtrl+K
DeleteCompleteLine(aucun)(aucun)Ctrl+UCtrl+U
InsertParagraphSeparatorEntrerEntrerEntrerEntrer
InsertLineSeparatorMaj+EntréeMeta+Entrée, Meta+OMaj+EntréeMaj+Entrée
Espace arrière(aucun)Effacer, Méta+H(aucun)(aucun)
AnnulerÉchapperEchap, Ctrl+.ÉchapperÉchap.

Étant donné que les séquences de touches utilisées pour les raccourcis standard diffèrent d'une plate-forme à l'autre, vous devez tester vos raccourcis sur chaque plate-forme afin de vous assurer que vous n'attribuez pas involontairement la même séquence de touches à plusieurs actions.

Questions relatives à la disposition du clavier

De nombreuses spécifications de séquences de touches sont choisies par les développeurs en fonction de la disposition de certains types de clavier, plutôt que de choisir des touches qui représentent la première lettre du nom d'une action, comme Ctrl S ("Ctrl+S") ou Ctrl C ("Ctrl+C"). En outre, comme certains symboles ne peuvent être saisis qu'à l'aide de touches de modification sur certaines configurations de clavier, les séquences de touches destinées à être utilisées sur une configuration de clavier peuvent correspondre à une touche différente, ne correspondre à aucune touche ou nécessiter une touche de modification supplémentaire pour être utilisées sur des configurations de clavier différentes.

Par exemple, les raccourcis Ctrl plus et Ctrl minus sont souvent utilisés comme raccourcis pour les opérations de zoom dans les applications graphiques et peuvent être spécifiés comme "Ctrl++" et "Ctrl+-" respectivement. Cependant, la manière dont ces raccourcis sont spécifiés et interprétés dépend de la disposition du clavier. Les utilisateurs de claviers norvégiens remarqueront que les touches + et - ne sont pas adjacentes sur le clavier, mais ils pourront quand même activer les deux raccourcis sans avoir à appuyer sur la touche Shift. En revanche, les utilisateurs de claviers britanniques devront maintenir la touche Shift enfoncée pour saisir le symbole +, ce qui revient à dire que le raccourci est identique à "Ctrl+Shift+=".

Bien que certains développeurs aient recours à la spécification complète de tous les modificateurs qu'ils utilisent sur leurs claviers pour activer un raccourci, cela entraînera également un comportement inattendu pour les utilisateurs de différentes dispositions de clavier.

Par exemple, un développeur utilisant un clavier britannique peut décider de spécifier "Ctrl+Shift+=" comme séquence de touches afin de créer un raccourci qui, par coïncidence, se comporte de la même manière que Ctrl plus. Cependant, la touche = doit être accessible à l'aide de la touche Shift sur un clavier norvégien, ce qui rend le raccourci requis effectivement Ctrl Shift Shift = (une combinaison de touches impossible).

Par conséquent, les chaînes lisibles par l'homme et les codes de touches codés en dur peuvent tous deux poser des problèmes lorsqu'il s'agit de spécifier une séquence de touches pouvant être utilisée sur une variété de claviers différents. Seule l'utilisation de standard shortcuts garantit que l'utilisateur pourra utiliser les raccourcis prévus par le développeur.

Malgré cela, nous pouvons résoudre ce problème en veillant à ce que des chaînes lisibles par l'homme soient utilisées, ce qui permet de traduire les séquences de touches pour les utilisateurs de différentes langues. Cette approche sera efficace pour les utilisateurs dont les claviers ont la disposition la plus typique de la langue qu'ils utilisent.

Séquences de touches de style GNU Emacs

Des séquences de touches similaires à celles utilisées dans GNU Emacs, permettant jusqu'à quatre codes de touches, peuvent être créées en utilisant le constructeur à arguments multiples, ou en passant une chaîne lisible par l'homme de séquences de touches séparées par des virgules.

Par exemple, la séquence de clés Ctrl X suivie de Ctrl C peut être spécifiée de l'une ou l'autre des manières suivantes :

QKeySequence(tr("Ctrl+X, Ctrl+C"));
QKeySequence(Qt::CTRL | Qt::Key_X, Qt::CTRL | Qt::Key_C);
QKeySequence(Qt::CTRL + Qt::Key_X, Qt::CTRL + Qt::Key_C); // deprecated

Avertissement : Une instance QApplication doit avoir été construite avant la création d'une QKeySequence ; sinon, votre application risque de se bloquer.

Voir également QShortcut.

Documentation sur les types de membres

enum QKeySequence::SequenceFormat

ConstanteValeurDescription
QKeySequence::NativeText0La séquence de touches sous la forme d'une chaîne de caractères spécifique à la plate-forme. Cela signifie qu'elle sera traduite et que, sur les plates-formes Apple, elle ressemblera à une séquence de touches de la barre de menus. Il est préférable d'utiliser cette liste lorsque vous souhaitez afficher la chaîne de caractères à l'utilisateur.
QKeySequence::PortableText1La séquence de touches est donnée dans un format "portable", adapté à la lecture et à l'écriture dans un fichier. Dans de nombreux cas, elle ressemblera au texte natif de Windows et de X11.

enum QKeySequence::SequenceMatch

ConstanteValeurDescription
QKeySequence::NoMatch0Les séquences de clés sont différentes ; elles ne correspondent même pas partiellement.
QKeySequence::PartialMatch1Les séquences de clés correspondent partiellement, mais ne sont pas identiques.
QKeySequence::ExactMatch2Les séquences de clés sont identiques.

enum QKeySequence::StandardKey

Cette liste représente les raccourcis clavier standard. Elles peuvent être utilisées pour attribuer à une QAction des raccourcis clavier dépendant de la plate-forme.

Notez que les liaisons de touches dépendent de la plate-forme. Les raccourcis clavier actuellement liés peuvent être interrogés à l'aide de keyBindings().

ConstanteValeurDescription de l'action
QKeySequence::AddTab19Ajouter un nouvel onglet.
QKeySequence::Back13Naviguer vers l'arrière.
QKeySequence::Backspace69Supprimer le caractère précédent.
QKeySequence::Bold27Mettre le texte en gras.
QKeySequence::Close4Fermer le document/l'onglet.
QKeySequence::Copy9Copier.
QKeySequence::Cut8Couper.
QKeySequence::Delete7Supprimer.
QKeySequence::DeleteEndOfLine60Supprimer la fin de la ligne.
QKeySequence::DeleteEndOfWord59Effacer un mot à partir de la fin du curseur.
QKeySequence::DeleteStartOfWord58Effacer le début d'un mot jusqu'au curseur.
QKeySequence::DeleteCompleteLine68Effacer la ligne entière.
QKeySequence::Find22Rechercher dans le document.
QKeySequence::FindNext23Rechercher le résultat suivant.
QKeySequence::FindPrevious24Rechercher le résultat précédent.
QKeySequence::Forward14Naviguer vers l'avant.
QKeySequence::HelpContents1Ouvrir le contenu de l'aide.
QKeySequence::InsertLineSeparator62Insérer une nouvelle ligne.
QKeySequence::InsertParagraphSeparator61Insérer un nouveau paragraphe.
QKeySequence::Italic28Texte en italique.
QKeySequence::MoveToEndOfBlock41Déplacer le curseur à la fin du bloc. Ce raccourci n'est utilisé que sur les plates-formes Apple.
QKeySequence::MoveToEndOfDocument43Déplacer le curseur à la fin du document.
QKeySequence::MoveToEndOfLine39Déplacer le curseur à la fin de la ligne.
QKeySequence::MoveToNextChar30Déplacer le curseur au caractère suivant.
QKeySequence::MoveToNextLine34Déplacer le curseur à la ligne suivante.
QKeySequence::MoveToNextPage36Déplacer le curseur à la page suivante.
QKeySequence::MoveToNextWord32Déplacer le curseur au mot suivant.
QKeySequence::MoveToPreviousChar31Déplacer le curseur vers le caractère précédent.
QKeySequence::MoveToPreviousLine35Déplacer le curseur sur la ligne précédente.
QKeySequence::MoveToPreviousPage37Déplacer le curseur à la page précédente.
QKeySequence::MoveToPreviousWord33Déplacer le curseur sur le mot précédent.
QKeySequence::MoveToStartOfBlock40Déplacer le curseur au début d'un bloc. Ce raccourci n'est utilisé que sur les plates-formes Apple.
QKeySequence::MoveToStartOfDocument42Déplacer le curseur au début du document.
QKeySequence::MoveToStartOfLine38Déplacer le curseur au début d'une ligne.
QKeySequence::New6Créer un nouveau document.
QKeySequence::NextChild20Naviguer vers l'onglet suivant ou la fenêtre enfant.
QKeySequence::Open3Ouvrir un document.
QKeySequence::Paste10Coller.
QKeySequence::Preferences64Ouvrir la boîte de dialogue des préférences.
QKeySequence::PreviousChild21Naviguer vers l'onglet précédent ou la fenêtre enfant.
QKeySequence::Print18Imprimer le document.
QKeySequence::Quit65Quitter l'application.
QKeySequence::Redo12Rétablir.
QKeySequence::Refresh15Actualiser ou recharger le document en cours.
QKeySequence::Replace25Rechercher et remplacer.
QKeySequence::SaveAs63Enregistrer le document après avoir demandé à l'utilisateur un nom de fichier.
QKeySequence::Save5Enregistrer le document.
QKeySequence::SelectAll26Sélectionner tout le texte.
QKeySequence::Deselect67Désélectionner du texte. Depuis la version 5.1
QKeySequence::SelectEndOfBlock55Étendre la sélection à la fin d'un bloc de texte. Ce raccourci n'est utilisé que sur les plateformes Apple.
QKeySequence::SelectEndOfDocument57Étendre la sélection à la fin du document.
QKeySequence::SelectEndOfLine53Étendre la sélection à la fin de la ligne.
QKeySequence::SelectNextChar44Étendre la sélection au caractère suivant.
QKeySequence::SelectNextLine48Étendre la sélection à la ligne suivante.
QKeySequence::SelectNextPage50Étendre la sélection à la page suivante.
QKeySequence::SelectNextWord46Extension de la sélection au mot suivant.
QKeySequence::SelectPreviousChar45Extension de la sélection au caractère précédent.
QKeySequence::SelectPreviousLine49Extension de la sélection à la ligne précédente.
QKeySequence::SelectPreviousPage51Aller à la page précédente.
QKeySequence::SelectPreviousWord47Extension de la sélection au mot précédent.
QKeySequence::SelectStartOfBlock54Étendre la sélection au début d'un bloc de texte. Ce raccourci n'est utilisé que sur les plateformes Apple.
QKeySequence::SelectStartOfDocument56Étendre la sélection au début du document.
QKeySequence::SelectStartOfLine52Étendre la sélection au début de la ligne.
QKeySequence::Underline29Souligner le texte.
QKeySequence::Undo11Annuler.
QKeySequence::UnknownKey0Touche de déliaison.
QKeySequence::WhatsThis2Activer la fonction "Qu'est-ce que c'est ?
QKeySequence::ZoomIn16Zoom avant.
QKeySequence::ZoomOut17Zoom arrière.
QKeySequence::FullScreen66Basculer l'état de la fenêtre vers/depuis le plein écran.
QKeySequence::Cancel70Annule l'opération en cours.

Documentation des fonctions membres

QKeySequence::QKeySequence()

Construit une séquence de clés vide.

QKeySequence::QKeySequence(QKeySequence::StandardKey key)

Construit un objet QKeySequence pour l'adresse key donnée. Le résultat dépendra de la plate-forme en cours d'exécution.

L'objet résultant sera basé sur le premier élément de la liste des liaisons de touches pour key.

QKeySequence::QKeySequence(const QString &key, QKeySequence::SequenceFormat format = NativeText)

Crée une séquence de touches à partir de la chaîne key, sur la base de format.

Par exemple, "Ctrl+O" donne CTRL+'O'. Les chaînes "Ctrl", "Shift", "Alt" et "Meta" sont reconnues, ainsi que leurs équivalents traduits dans le contexte "QShortcut" (en utilisant QObject::tr()).

Il est possible d'entrer jusqu'à quatre codes de touches en les séparant par des virgules, par exemple "Alt+X,Ctrl+S,Q".

Ce constructeur est généralement utilisé avec tr(), afin que les touches de raccourci puissent être remplacées dans les traductions :

QMenu *file = new QMenu(this);
file->addAction(tr("&Open..."), QKeySequence(tr("Ctrl+O", "File|Open")),
                this, &MainWindow::open);

Notez le commentaire du traducteur "File|Open". Il n'est en aucun cas nécessaire, mais il fournit un certain contexte au traducteur humain.

QKeySequence::QKeySequence(QKeyCombination k1, QKeyCombination k2 = QKeyCombination::fromCombined(0), QKeyCombination k3 = QKeyCombination::fromCombined(0), QKeyCombination k4 = QKeyCombination::fromCombined(0))

Construit une séquence de touches avec jusqu'à 4 touches k1, k2, k3 et k4.

Voir aussi QKeyCombination.

QKeySequence::QKeySequence(int k1, int k2 = 0, int k3 = 0, int k4 = 0)

Construit une séquence de touches avec jusqu'à 4 touches k1, k2, k3 et k4.

Les codes des touches sont énumérés dans Qt::Key et peuvent être combinés avec des modificateurs (voir Qt::KeyboardModifier) tels que Qt::ShiftModifier, Qt::ControlModifier, Qt::AltModifier, ou Qt::MetaModifier.

QKeySequence::QKeySequence(const QKeySequence &keysequence)

Constructeur de copie. Fait une copie de keysequence.

[noexcept] QKeySequence::~QKeySequence()

Détruit la séquence de touches.

int QKeySequence::count() const

Renvoie le nombre de touches dans la séquence de touches. Le maximum est de 4.

[static] QKeySequence QKeySequence::fromString(const QString &str, QKeySequence::SequenceFormat format = PortableText)

Renvoie un QKeySequence à partir de la chaîne str basée sur format.

Voir aussi toString().

bool QKeySequence::isEmpty() const

Renvoie true si la séquence de clés est vide ; sinon, renvoie false.

[static] QList<QKeySequence> QKeySequence::keyBindings(QKeySequence::StandardKey key)

Renvoie une liste de raccourcis clavier pour l'adresse key. Le résultat de l'appel à cette fonction varie en fonction de la plate-forme cible. Le premier élément de la liste indique le raccourci principal pour la plate-forme donnée. Si le résultat contient plusieurs éléments, ceux-ci peuvent être considérés comme des raccourcis alternatifs sur la même plate-forme pour le site key.

[static] QList<QKeySequence> QKeySequence::listFromString(const QString &str, QKeySequence::SequenceFormat format = PortableText)

Renvoie une liste de QKeySequence à partir de la chaîne str basée sur format.

Voir aussi fromString() et listToString().

[static] QString QKeySequence::listToString(const QList<QKeySequence> &list, QKeySequence::SequenceFormat format = PortableText)

Renvoie une représentation sous forme de chaîne de caractères de list basée sur format.

Voir aussi toString() et listFromString().

QKeySequence::SequenceMatch QKeySequence::matches(const QKeySequence &seq) const

Fait correspondre la séquence avec seq. Renvoie ExactMatch en cas de succès, PartialMatch si seq correspond incomplètement, et NoMatch si les séquences n'ont rien en commun. Renvoie NoMatch si seq est plus court.

[static] QKeySequence QKeySequence::mnemonic(const QString &text)

Renvoie la séquence de touches de raccourci pour le mnémonique dans text, ou une séquence de touches vide si aucun mnémonique n'est trouvé.

Par exemple, mnemonic("E&xit") renvoie Qt::ALT+Qt::Key_X, mnemonic("&Quit") renvoie ALT+Key_Q, et mnemonic("Quit") renvoie une séquence vide QKeySequence.

[noexcept] void QKeySequence::swap(QKeySequence &other)

Remplace cette séquence de touches par other. Cette opération est très rapide et n'échoue jamais.

QString QKeySequence::toString(QKeySequence::SequenceFormat format = PortableText) const

Renvoie une représentation sous forme de chaîne de la séquence de touches, sur la base de format.

Par exemple, la valeur Qt::CTRL+Qt::Key_O donne "Ctrl+O". Si la séquence de touches comporte plusieurs codes, chacun est séparé par une virgule dans la chaîne renvoyée, par exemple "Alt+X, Ctrl+Y, Z". Les chaînes "Ctrl", "Shift", etc. sont traduites à l'aide de QObject::tr() dans le contexte "QShortcut".

Si la séquence de touches ne comporte aucune touche, une chaîne vide est renvoyée.

Sur les plates-formes Apple, la chaîne renvoyée ressemble à la séquence affichée dans la barre de menus si format est QKeySequence::NativeText; sinon, la chaîne utilise le format "portable", adapté à l'écriture dans un fichier.

Voir aussi fromString().

QKeySequence::operator QVariant() const

Renvoie la séquence de clés sous la forme d'un QVariant

bool QKeySequence::operator!=(const QKeySequence &other) const

Renvoie true si cette séquence de clés n'est pas égale à la séquence de clés other; sinon, renvoie false.

bool QKeySequence::operator<(const QKeySequence &other) const

Fournit une comparaison arbitraire de cette séquence de clés et de la séquence de clés other. Tout ce qui est garanti est que l'opérateur renvoie false si les deux séquences de clés sont égales et que (ks1 < ks2) == !( ks2 < ks1) si les séquences de clés ne sont pas égales.

Cette fonction est utile dans certaines circonstances, par exemple si vous souhaitez utiliser des objets QKeySequence comme clés dans une base de données QMap.

Voir aussi operator==(), operator!=(), operator>(), operator<=() et operator>=().

bool QKeySequence::operator<=(const QKeySequence &other) const

Renvoie true si cette séquence de clés est inférieure ou égale à la séquence de clés other; sinon, renvoie false.

Voir aussi operator==(), operator!=(), operator<(), operator>() et operator>=().

[noexcept] QKeySequence &QKeySequence::operator=(QKeySequence &&other)

Move-assigne other à cette instance QKeySequence.

QKeySequence &QKeySequence::operator=(const QKeySequence &other)

Opérateur d'affectation. Affecte la séquence de touches other à cet objet.

bool QKeySequence::operator==(const QKeySequence &other) const

Renvoie true si cette séquence de clés est égale à la séquence de clés other; sinon, renvoie false.

bool QKeySequence::operator>(const QKeySequence &other) const

Renvoie true si cette séquence de clés est plus grande que la séquence de clés other; sinon, renvoie false.

Voir aussi operator==(), operator!=(), operator<(), operator<=() et operator>=().

bool QKeySequence::operator>=(const QKeySequence &other) const

Renvoie true si cette séquence de clés est supérieure ou égale à la séquence de clés other; sinon, renvoie false.

Voir aussi operator==(), operator!=(), operator<(), operator>() et operator<=().

QKeyCombination QKeySequence::operator[](uint index) const

Renvoie une référence à l'élément situé à la position index dans la séquence de clés. Cette référence ne peut être utilisée que pour lire un élément.

Non-membres apparentés

[noexcept] size_t qHash(const QKeySequence &key, size_t seed = 0)

Renvoie la valeur de hachage pour key, en utilisant seed comme base de calcul.

void qt_set_sequence_auto_mnemonic(bool b)

Spécifie si les mnémoniques pour les éléments de menu, les étiquettes, etc., doivent être honorés ou non. Sous Windows et X11, cette fonctionnalité est activée par défaut ; sous macOS, elle est désactivée. Lorsque cette fonction est désactivée (c'est-à-dire lorsque b est faux), QKeySequence::mnemonic() renvoie toujours une chaîne vide.

Remarque : cette fonction n'est déclarée dans aucun des fichiers d'en-tête de Qt. Pour l'utiliser dans votre application, déclarez le prototype de la fonction avant de l'appeler.

Voir aussi QShortcut.

QDataStream &operator<<(QDataStream &stream, const QKeySequence &sequence)

Écrit la clé sequence sur le site stream.

Voir aussi Format des opérateurs QDataStream.

QDataStream &operator>>(QDataStream &stream, QKeySequence &sequence)

Lit une séquence de clés à partir de stream dans la clé sequence.

Voir aussi Format des opérateurs QDataStream.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.