En esta página

QShortcut Class

La clase QShortcut se utiliza para crear atajos de teclado. Más...

Cabecera: #include <QShortcut>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Hereda: QObject

Propiedades

Funciones públicas

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

Señales

Descripción detallada

La clase QShortcut proporciona una forma de conectar los atajos de teclado al mecanismo de señales y ranuras de Qt, de forma que los objetos puedan ser informados cuando se ejecuta un atajo. El atajo puede ser configurado para contener todas las pulsaciones de teclas necesarias para describir un atajo de teclado, incluyendo los estados de las teclas modificadoras como Shift, Ctrl, y Alt.

En las aplicaciones de widgets, algunos de ellos pueden utilizar "&" delante de un carácter. Esto creará automáticamente un mnemotécnico (un atajo) para ese carácter, por ejemplo, "E&xit" creará el atajo Alt+X (usa '&&' para mostrar un ampersand real). El widget puede consumir y realizar una acción sobre un atajo dado. En X11 no se mostrará el ampersand y el carácter aparecerá subrayado. En Windows, los accesos directos normalmente no se muestran hasta que el usuario pulsa la tecla Alt, pero ésta es una configuración que el usuario puede cambiar. En Mac, los accesos directos están desactivados por defecto. Llame a qt_set_sequence_auto_mnemonic() para activarlos. Sin embargo, como los atajos mnemotécnicos no se ajustan a las directrices de Aqua, Qt no mostrará el carácter del atajo subrayado.

Para las aplicaciones que utilizan menús, puede ser más conveniente utilizar las funciones de conveniencia proporcionadas en la clase QMenu para asignar atajos de teclado a los elementos de menú a medida que se crean. Alternativamente, los atajos pueden asociarse con otros tipos de acciones en la clase QAction.

La forma más sencilla de crear un atajo para un widget concreto es construir el atajo con una secuencia de teclas. Por ejemplo:

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

Cuando el usuario teclea key sequence para un acceso directo determinado, se emite la señal activated() del acceso directo. (En caso de ambigüedad, se emite la señal activatedAmbiguously()). Un acceso directo es "escuchado" por el bucle de eventos de Qt cuando el widget padre del acceso directo recibe eventos.

La secuencia de teclas de un acceso directo puede establecerse con setKey() y recuperarse con key(). Un acceso directo puede activarse o desactivarse con setEnabled(), y puede tener el texto de ayuda "¿Qué es esto?" establecido con setWhatsThis().

Véase también QShortcutEvent, QKeySequence, y QAction.

Documentación de propiedades

autoRepeat : bool

Esta propiedad indica si el atajo de teclado puede repetirse automáticamente.

Si es true, el atajo se repetirá automáticamente cuando se mantenga pulsada la combinación de teclas, siempre que la repetición automática de teclado esté habilitada en el sistema. El valor por defecto es true.

Funciones de acceso:

bool autoRepeat() const
void setAutoRepeat(bool on)

context : Qt::ShortcutContext

Esta propiedad contiene el contexto en el que es válido el acceso directo

El contexto de un acceso directo decide en qué circunstancias puede activarse. El contexto normal es Qt::WindowShortcut, que permite que el acceso directo se active si el padre (el widget que contiene el acceso directo) es un subwidget de la ventana activa de nivel superior.

Por defecto, esta propiedad se establece en Qt::WindowShortcut.

Funciones de acceso:

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

enabled : bool

Esta propiedad indica si el acceso directo está habilitado

Un acceso directo habilitado emite la señal activated() o activatedAmbiguously() cuando se produce un QShortcutEvent que coincide con la secuencia key() del acceso directo.

Si la aplicación está en modo WhatsThis el acceso directo no emitirá las señales, pero en su lugar mostrará el texto "¿Qué es esto?".

Por defecto, esta propiedad es true.

Funciones de acceso:

bool isEnabled() const
void setEnabled(bool enable)

Véase también whatsThis.

key : QKeySequence

Esta propiedad contiene la secuencia de teclas principal del acceso directo

Se trata de una secuencia de teclas con una combinación opcional de Shift, Ctrl y Alt. La secuencia de teclas puede proporcionarse de varias formas:

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

Por defecto, esta propiedad contiene una secuencia de teclas vacía.

Funciones de acceso:

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

Documentación de funciones miembro

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

Construye un objeto QShortcut para el parent, que debe ser un QWindow o un QWidget.

Dado que no se especifica ninguna secuencia de teclas de acceso directo, el acceso directo no emitirá ninguna señal.

Véase también 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)

Construye un objeto QShortcut para parent, que debe ser QWindow o QWidget.

El acceso directo opera sobre su padre, escuchando QShortcutEvents que coincidan con el standardKey. Dependiendo de la ambigüedad del evento, el acceso directo llamará a la función member, o a la función ambiguousMember, si la tecla pulsada estaba en el context del acceso directo.

Esta función se introdujo en Qt 6.0.

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

Construye un objeto QShortcut para el parent, que debe ser un QWindow o un QWidget.

El acceso directo opera sobre su padre, escuchando QShortcutEvents que coincidan con la secuencia key. Dependiendo de la ambigüedad del evento, el acceso directo llamará a la función member, o a la función ambiguousMember, si la tecla pulsada estaba en el context del acceso directo.

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

Este es un constructor conveniente de QShortcut que conecta la señal activated() del acceso directo a functor.

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.0.

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

Este es un constructor de conveniencia de QShortcut que conecta la señal activated() del acceso directo a functor.

Esta es una función sobrecargada.

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

Este es un constructor de conveniencia de QShortcut que conecta la señal activated() del acceso directo a functor.

El functor puede ser un puntero a una función miembro del objeto context.

Si se destruye el objeto context, no se llamará a functor.

Se trata de una función sobrecargada.

Esta función se introdujo en Qt 6.0.

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

Este es un constructor de conveniencia de QShortcut que conecta la señal activated() del acceso directo a functor.

El functor puede ser un puntero a una función miembro del objeto context.

Si se destruye el objeto context, no se llamará a functor.

Se trata de una función sobrecargada.

[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)

Este es un constructor de conveniencia QShortcut que conecta la señal activated() del acceso directo a la señal functor y activatedAmbiguously() a la señal functorAmbiguous.

Los functor y functorAmbiguous pueden ser un puntero a una función miembro del objeto context.

Si se destruye el objeto context, no se llamará a functor y functorAmbiguous.

Se trata de una función sobrecargada.

Esta función se introdujo en 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)

Este es un constructor de conveniencia QShortcut que conecta la señal activated() del acceso directo a la señal functor y activatedAmbiguously() a la señal functorAmbiguous.

Los functor y functorAmbiguous pueden ser un puntero a una función miembro del objeto context.

Si se destruye el objeto context, no se llamará a functor y functorAmbiguous.

Se trata de una función sobrecargada.

[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)

Este es un constructor de conveniencia QShortcut que conecta la señal activated() del acceso directo a la señal functor y activatedAmbiguously() a la señal functorAmbiguous.

functor puede ser un puntero a una función miembro del objeto context1. functorAmbiguous puede ser un puntero a una función miembro del objeto context2.

Si se destruye el objeto context1, no se llamará a functor. Si se destruye el objeto context2, no se llamará a functorAmbiguous.

Se trata de una función sobrecargada.

Esta función se introdujo en 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)

Este es un constructor de conveniencia QShortcut que conecta la señal activated() del acceso directo a la señal functor y activatedAmbiguously() a la señal functorAmbiguous.

functor puede ser un puntero a una función miembro del objeto context1. functorAmbiguous puede ser un puntero a una función miembro del objeto context2.

Si se destruye el objeto context1, no se llamará a functor. Si se destruye el objeto context2, no se llamará a functorAmbiguous.

Se trata de una función sobrecargada.

[virtual noexcept] QShortcut::~QShortcut()

Destruye el acceso directo.

[signal] void QShortcut::activated()

Esta señal se emite cuando el usuario teclea la secuencia de teclas del acceso directo.

Véase también activatedAmbiguously().

[signal] void QShortcut::activatedAmbiguously()

Cuando se está escribiendo una secuencia de teclas en el teclado, se dice que es ambigua siempre que coincida con el inicio de más de un atajo.

Cuando se completa la secuencia de teclas de un atajo, se emite activatedAmbiguously() si la secuencia de teclas sigue siendo ambigua (es decir, es el inicio de otro u otros atajos). La señal activated() no se emite en este caso.

Véase también activated().

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

Devuelve la lista de secuencias de teclas que activan este atajo.

Esta función se introdujo en Qt 6.0.

Véase también key y setKeys().

QWidget *QShortcut::parentWidget() const

Devuelve el widget padre del acceso directo.

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

Establece los disparadores a aquellos que coinciden con la tecla estándar key.

Esta función se introdujo en Qt 6.0.

Véase también key y keys().

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

Establece keys como la lista de secuencias de teclas que activan el acceso directo.

Esta función se introdujo en Qt 6.0.

Véase también key y keys().

void QShortcut::setWhatsThis(const QString &text)

Establece la ayuda "¿Qué es esto?" del acceso directo text.

El texto se mostrará cuando una aplicación widget esté en modo "¿Qué es esto?" y el usuario escriba la secuencia del atajo key().

Para establecer la ayuda "¿Qué es esto?" en un elemento de menú (con o sin tecla de acceso directo), establezca la ayuda en la acción del elemento.

Por defecto, el texto de ayuda es una cadena vacía.

Esta función no tiene efecto en las aplicaciones que no utilizan widgets.

Véase también whatsThis(), QWhatsThis::inWhatsThisMode() y QAction::setWhatsThis().

QString QShortcut::whatsThis() const

Devuelve el texto de ayuda "¿Qué es esto?" del acceso directo.

Véase también 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.