Sur cette page

QShortcut Class

La classe QShortcut est utilisée pour créer des raccourcis clavier. Plus d'informations...

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

Propriétés

Fonctions publiques

QShortcut(QObject *parent)
(since 6.0) QShortcut(QKeySequence::StandardKey standardKey, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)
QShortcut(const QKeySequence &key, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)
(since 6.0) QShortcut(QKeySequence::StandardKey key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
QShortcut(const QKeySequence &key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
(since 6.0) QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
(since 6.0) QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
(since 6.0) QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context1, Functor functor, const QObject *context2, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
QShortcut(const QKeySequence &key, QObject *parent, const QObject *context1, Functor functor, const QObject *context2, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
virtual ~QShortcut()
bool autoRepeat() const
Qt::ShortcutContext context() const
bool isEnabled() const
QKeySequence key() const
(since 6.0) QList<QKeySequence> keys() const
QWidget *parentWidget() const
void setAutoRepeat(bool on)
void setContext(Qt::ShortcutContext context)
void setEnabled(bool enable)
void setKey(const QKeySequence &key)
(since 6.0) void setKeys(QKeySequence::StandardKey key)
(since 6.0) void setKeys(const QList<QKeySequence> &keys)
void setWhatsThis(const QString &text)
QString whatsThis() const

Signaux

Description détaillée

La classe QShortcut permet de connecter les raccourcis clavier au mécanisme de signaux et de slots de Qt, afin que les objets puissent être informés de l'exécution d'un raccourci. Le raccourci peut être configuré pour contenir toutes les pressions de touches nécessaires à la description d'un raccourci clavier, y compris les états des touches de modification telles que Shift, Ctrl, et Alt.

Dans les applications de widgets, certains widgets peuvent utiliser "&" devant un caractère. Cela créera automatiquement un raccourci pour ce caractère, par exemple "E&xit" créera le raccourci Alt+X (utilisez "&&" pour afficher une esperluette). Le widget peut consommer et effectuer une action sur un raccourci donné. Sous X11, l'esperluette ne sera pas affichée et le caractère sera souligné. Sous Windows, les raccourcis ne sont normalement pas affichés tant que l'utilisateur n'a pas appuyé sur la touche Alt, mais c'est un paramètre que l'utilisateur peut modifier. Sur Mac, les raccourcis sont désactivés par défaut. Appelez qt_set_sequence_auto_mnemonic() pour les activer. Cependant, comme les raccourcis mnémoniques ne correspondent pas aux directives d'Aqua, Qt n'affichera pas le caractère de raccourci souligné.

Pour les applications qui utilisent des menus, il peut être plus pratique d'utiliser les fonctions de commodité fournies dans la classe QMenu pour attribuer des raccourcis clavier aux éléments de menu au fur et à mesure de leur création. Les raccourcis peuvent également être associés à d'autres types d'actions dans la classe QAction.

La manière la plus simple de créer un raccourci pour un widget particulier est de construire le raccourci avec une séquence de touches. Par exemple :

shortcut = new QShortcut(QKeySequence(tr("Ctrl+O", "File|Open")),
                        parent);

Lorsque l'utilisateur tape le key sequence pour un raccourci donné, le signal activated() du raccourci est émis. (En cas d'ambiguïté, le signal activatedAmbiguously() est émis). Un raccourci est "écouté" par la boucle d'événements de Qt lorsque le widget parent du raccourci reçoit des événements.

La séquence de touches d'un raccourci peut être définie avec setKey() et récupérée avec key(). Un raccourci peut être activé ou désactivé avec setEnabled(), et le texte d'aide "What's This ?" peut être défini avec setWhatsThis().

Voir également QShortcutEvent, QKeySequence, et QAction.

Documentation sur les propriétés

autoRepeat : bool

Cette propriété indique si le raccourci peut être répété automatiquement

Si la valeur est "true", le raccourci se répète automatiquement lorsque la combinaison de raccourcis clavier est maintenue enfoncée, à condition que la répétition automatique du clavier soit activée sur le système. La valeur par défaut est true.

Fonctions d'accès :

bool autoRepeat() const
void setAutoRepeat(bool on)

context : Qt::ShortcutContext

Cette propriété définit le contexte dans lequel le raccourci est valide

Le contexte d'un raccourci détermine les circonstances dans lesquelles un raccourci peut être déclenché. Le contexte normal est Qt::WindowShortcut, ce qui permet au raccourci de se déclencher si le parent (le widget contenant le raccourci) est un sous-widget de la fenêtre active de niveau supérieur.

Par défaut, cette propriété est définie sur Qt::WindowShortcut.

Fonctions d'accès :

Qt::ShortcutContext context() const
void setContext(Qt::ShortcutContext context)

enabled : bool

Cette propriété indique si le raccourci est activé

Un raccourci activé émet le signal activated() ou activatedAmbiguously() lorsqu'un événement QShortcutEvent se produit et correspond à la séquence key() du raccourci.

Si l'application est en mode WhatsThis, le raccourci n'émettra pas les signaux, mais affichera le texte "Qu'est-ce que c'est ?

Par défaut, la valeur de cette propriété est true.

Fonctions d'accès :

bool isEnabled() const
void setEnabled(bool enable)

Voir également whatsThis.

key : QKeySequence

Cette propriété contient la séquence de clés principale du raccourci

Il s'agit d'une séquence de touches avec une combinaison facultative de Shift, Ctrl et Alt. La séquence de touches peut être fournie de différentes manières :

setKey(0);                  // no signal emitted
setKey(QKeySequence());     // no signal emitted
setKey(0x3b1);              // Greek letter alpha
setKey(Qt::Key_D);              // 'd', e.g. to delete
setKey('q');                // 'q', e.g. to quit
setKey(Qt::CTRL | Qt::Key_P);       // Ctrl+P, e.g. to print document
setKey(tr("Ctrl+P"));           // Ctrl+P, e.g. to print document

Par défaut, cette propriété contient une séquence de touches vide.

Fonctions d'accès :

QKeySequence key() const
void setKey(const QKeySequence &key)

Documentation des fonctions membres

[explicit] QShortcut::QShortcut(QObject *parent)

Construit un objet QShortcut pour parent, qui doit être un QWindow ou un QWidget.

Comme aucune séquence de touches n'est spécifiée, le raccourci n'émet aucun signal.

Voir aussi setKey().

[explicit, since 6.0] QShortcut::QShortcut(QKeySequence::StandardKey standardKey, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)

Construit un objet QShortcut pour le parent, qui devrait être un QWindow ou un QWidget.

Le raccourci opère sur son parent, en écoutant les QShortcutEventqui correspondent au standardKey. Selon l'ambiguïté de l'événement, le raccourci appellera la fonction member, ou la fonction ambiguousMember, si la pression sur la touche se trouvait dans le context du raccourci.

Cette fonction a été introduite dans Qt 6.0.

[explicit] QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)

Construit un objet QShortcut pour le parent, qui doit être un QWindow ou un QWidget.

Le raccourci opère sur son parent, en écoutant les QShortcutEventqui correspondent à la séquence key. En fonction de l'ambiguïté de l'événement, le raccourci appellera la fonction member ou la fonction ambiguousMember si la touche a été appuyée dans la séquence context du raccourci.

[since 6.0] template <typename Functor> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)

Il s'agit d'un constructeur de commodité QShortcut qui connecte le signal activated() du raccourci à l'adresse functor.

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.0.

template <typename Functor> QShortcut::QShortcut(const QKeySequence &key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)

Il s'agit d'un constructeur de commodité QShortcut qui connecte le signal activated() du raccourci à l'adresse functor.

Il s'agit d'une fonction surchargée.

[since 6.0] template <typename Functor> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)

Il s'agit d'un constructeur de commodité QShortcut qui connecte le signal activated() du raccourci à l'objet functor.

Le signal functor peut être un pointeur vers une fonction membre de l'objet context.

Si l'objet context est détruit, l'objet functor ne sera pas appelé.

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.0.

template <typename Functor> QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)

Il s'agit d'un constructeur de commodité QShortcut qui connecte le signal activated() du raccourci à l'objet functor.

Le signal functor peut être un pointeur vers une fonction membre de l'objet context.

Si l'objet context est détruit, l'objet functor ne sera pas appelé.

Il s'agit d'une fonction surchargée.

[since 6.0] template <typename Functor, typename FunctorAmbiguous> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)

Il s'agit d'un constructeur de commodité QShortcut qui connecte le signal activated() du raccourci à l'objet functor et le signal activatedAmbiguously() à l'objet functorAmbiguous.

Les signaux functor et functorAmbiguous peuvent être un pointeur sur une fonction membre de l'objet context.

Si l'objet context est détruit, les fonctions functor et functorAmbiguous ne seront pas appelées.

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.0.

template <typename Functor, typename FunctorAmbiguous> QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)

Il s'agit d'un constructeur de commodité QShortcut qui connecte le signal activated() du raccourci à l'objet functor et le signal activatedAmbiguously() à l'objet functorAmbiguous.

Les signaux functor et functorAmbiguous peuvent être un pointeur sur une fonction membre de l'objet context.

Si l'objet context est détruit, les fonctions functor et functorAmbiguous ne seront pas appelées.

Il s'agit d'une fonction surchargée.

[since 6.0] template <typename Functor, typename FunctorAmbiguous> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context1, Functor functor, const QObject *context2, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)

Il s'agit d'un constructeur de commodité QShortcut qui connecte le signal activated() du raccourci à l'objet functor et le signal activatedAmbiguously() à l'objet functorAmbiguous.

Le signal functor peut être un pointeur vers une fonction membre de l'objet context1. Le signal functorAmbiguous peut être un pointeur vers une fonction membre de l'objet context2.

Si l'objet context1 est détruit, l'objet functor ne sera pas appelé. Si l'objet context2 est détruit, l'objet functorAmbiguous ne sera pas appelé.

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.0.

template <typename Functor, typename FunctorAmbiguous> QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const QObject *context1, Functor functor, const QObject *context2, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)

Il s'agit d'un constructeur de commodité QShortcut qui connecte le signal activated() du raccourci à l'objet functor et le signal activatedAmbiguously() à l'objet functorAmbiguous.

Le signal functor peut être un pointeur vers une fonction membre de l'objet context1. Le signal functorAmbiguous peut être un pointeur vers une fonction membre de l'objet context2.

Si l'objet context1 est détruit, l'objet functor ne sera pas appelé. Si l'objet context2 est détruit, l'objet functorAmbiguous ne sera pas appelé.

Il s'agit d'une fonction surchargée.

[virtual noexcept] QShortcut::~QShortcut()

Détruit le raccourci.

[signal] void QShortcut::activated()

Ce signal est émis lorsque l'utilisateur tape la séquence de touches du raccourci.

Voir également activatedAmbiguously().

[signal] void QShortcut::activatedAmbiguously()

Lorsqu'une séquence de touches est tapée au clavier, elle est dite ambiguë si elle correspond au début de plus d'un raccourci.

Lorsque la séquence de touches d'un raccourci est terminée, le signal activatedAmbiguously() est émis si la séquence de touches est toujours ambiguë (c'est-à-dire qu'elle correspond au début d'un ou plusieurs autres raccourcis). Le signal activated() n'est pas émis dans ce cas.

Voir aussi activated().

[since 6.0] QList<QKeySequence> QShortcut::keys() const

Renvoie la liste des séquences de touches qui déclenchent ce raccourci.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi key et setKeys().

QWidget *QShortcut::parentWidget() const

Renvoie le widget parent du raccourci.

[since 6.0] void QShortcut::setKeys(QKeySequence::StandardKey key)

Définit les déclencheurs à ceux qui correspondent à la touche standard key.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi key et keys().

[since 6.0] void QShortcut::setKeys(const QList<QKeySequence> &keys)

Définit keys comme la liste des séquences de touches qui déclenchent le raccourci.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi key et keys().

void QShortcut::setWhatsThis(const QString &text)

Définit l'aide "Qu'est-ce que c'est ?" du raccourci text.

Le texte s'affiche lorsqu'une application widget est en mode "Qu'est-ce que c'est ?" et que l'utilisateur tape la séquence du raccourci key().

Pour définir l'aide "Qu'est-ce que c'est ?" sur un élément de menu (avec ou sans touche de raccourci), définissez l'aide sur l'action de l'élément.

Par défaut, le texte de l'aide est une chaîne vide.

Cette fonction n'a aucun effet dans les applications qui n'utilisent pas de widgets.

Voir aussi whatsThis(), QWhatsThis::inWhatsThisMode() et QAction::setWhatsThis().

QString QShortcut::whatsThis() const

Renvoie le texte d'aide "Qu'est-ce que c'est ?" du raccourci.

Voir aussi setWhatsThis().

© 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.