QShortcut Class

Die Klasse QShortcut wird verwendet, um Tastaturkürzel zu erstellen. Mehr...

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

Eigenschaften

Öffentliche Funktionen

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

Signale

Detaillierte Beschreibung

Die Klasse QShortcut bietet eine Möglichkeit, Tastaturkürzel mit dem Signal- und Slot-Mechanismus von Qt zu verbinden, so dass Objekte informiert werden können, wenn ein Kürzel ausgeführt wird. Der Shortcut kann so eingerichtet werden, dass er alle Tastendrücke enthält, die zur Beschreibung eines Tastaturkürzels erforderlich sind, einschließlich der Zustände von Modifikatortasten wie Shift, Ctrl und Alt.

In Widget-Anwendungen können bestimmte Widgets ein "&" vor einem Zeichen verwenden. Dadurch wird automatisch eine Eselsbrücke (ein Kürzel) für dieses Zeichen erzeugt, z. B. "E&xit" erzeugt das Kürzel Alt+X (verwenden Sie '&&', um ein echtes kaufmännisches Und anzuzeigen). Das Widget kann eine Aktion auf ein gegebenes Kürzel anwenden und ausführen. Unter X11 wird das kaufmännische Und nicht angezeigt und das Zeichen wird unterstrichen. Unter Windows werden Tastenkombinationen normalerweise erst angezeigt, wenn der Benutzer die Taste Alt drückt, aber diese Einstellung kann der Benutzer ändern. Auf dem Mac sind Tastenkombinationen standardmäßig deaktiviert. Rufen Sie qt_set_sequence_auto_mnemonic() auf, um sie zu aktivieren. Da mnemonische Tastenkombinationen jedoch nicht mit den Richtlinien von Aqua übereinstimmen, zeigt Qt die Tastenkombinationen nicht unterstrichen an.

Für Anwendungen, die Menüs verwenden, kann es bequemer sein, die in der Klasse QMenu zur Verfügung gestellten Funktionen zu verwenden, um den Menüpunkten Tastenkombinationen zuzuweisen, während sie erstellt werden. Alternativ können Tastenkombinationen auch mit anderen Arten von Aktionen in der Klasse QAction verknüpft werden.

Der einfachste Weg, eine Tastenkombination für ein bestimmtes Widget zu erstellen, besteht darin, die Tastenkombination mit einer Tastenfolge zu konstruieren. Zum Beispiel:

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

Wenn der Benutzer die key sequence für eine bestimmte Verknüpfung eingibt, wird das Signal activated() der Verknüpfung ausgegeben. (Im Falle einer Mehrdeutigkeit wird das Signal activatedAmbiguously() ausgegeben). Eine Verknüpfung wird von der Ereignisschleife von Qt "abgehört", wenn das übergeordnete Widget der Verknüpfung Ereignisse empfängt.

Die Tastenfolge eines Shortcuts kann mit setKey() gesetzt und mit key() abgerufen werden. Ein Tastaturkürzel kann mit setEnabled() aktiviert oder deaktiviert werden, und der Hilfetext "What's This?" kann mit setWhatsThis() gesetzt werden.

Siehe auch QShortcutEvent, QKeySequence, und QAction.

Dokumentation der Eigenschaften

autoRepeat : bool

Diese Eigenschaft gibt an, ob das Tastenkürzel automatisch wiederholt werden kann.

Bei true wird die Tastenkombination automatisch wiederholt, wenn sie gedrückt gehalten wird, vorausgesetzt, die automatische Wiederholung der Tastenkombination ist auf dem System aktiviert. Der Standardwert ist true.

Zugriffsfunktionen:

bool autoRepeat() const
void setAutoRepeat(bool on)

context : Qt::ShortcutContext

Diese Eigenschaft enthält den Kontext, in dem die Verknüpfung gültig ist

Der Kontext einer Verknüpfung bestimmt, unter welchen Umständen eine Verknüpfung ausgelöst werden darf. Der normale Kontext ist Qt::WindowShortcut, wodurch die Verknüpfung ausgelöst werden kann, wenn das übergeordnete Element (das Widget, das die Verknüpfung enthält) ein Unterelement des aktiven Fensters der obersten Ebene ist.

Standardmäßig ist diese Eigenschaft auf Qt::WindowShortcut eingestellt.

Zugriffsfunktionen:

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

enabled : bool

Diese Eigenschaft gibt an, ob die Verknüpfung aktiviert ist.

Eine aktivierte Verknüpfung gibt das Signal activated() oder activatedAmbiguously() aus, wenn ein QShortcutEvent auftritt, das mit der Sequenz key() der Verknüpfung übereinstimmt.

Wenn sich die Anwendung im Modus WhatsThis befindet, gibt die Verknüpfung keine Signale aus, sondern zeigt stattdessen den Text "What's This?" an.

Standardmäßig ist diese Eigenschaft auf true eingestellt.

Zugriffsfunktionen:

bool isEnabled() const
void setEnabled(bool enable)

Siehe auch whatsThis.

key : QKeySequence

Diese Eigenschaft enthält die primäre Tastenfolge des Tastaturkürzels

Dies ist eine Tastenfolge mit einer optionalen Kombination aus Umschalttaste, Strg und Alt. Die Tastenfolge kann auf verschiedene Weise angegeben werden:

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("Ctrl+P");           // Ctrl+P, e.g. to print document

Standardmäßig enthält diese Eigenschaft eine leere Tastenfolge.

Zugriffsfunktionen:

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

Dokumentation der Mitgliedsfunktionen

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

Konstruiert ein QShortcut-Objekt für das parent, das ein QWindow oder ein QWidget sein sollte.

Da keine Tastenkombination angegeben ist, wird die Verknüpfung keine Signale ausgeben.

Siehe auch 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)

Konstruiert ein QShortcut-Objekt für das parent, das ein QWindow oder ein QWidget sein sollte.

Der Shortcut arbeitet mit seinem Elternteil und sucht nach QShortcutEvent, die mit standardKey übereinstimmen. Abhängig von der Mehrdeutigkeit des Ereignisses ruft der Shortcut die member Funktion auf, oder die ambiguousMember Funktion, wenn der Tastendruck im context des Shortcuts war.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Konstruiert ein QShortcut-Objekt für das parent, das ein QWindow oder ein QWidget sein sollte.

Die Verknüpfung arbeitet mit ihrer übergeordneten Funktion und wartet auf QShortcutEvent, die mit der key Sequenz übereinstimmt. Je nach Zweideutigkeit des Ereignisses ruft die Verknüpfung die Funktion member oder die Funktion ambiguousMember auf, wenn der Tastendruck in der context der Verknüpfung lag.

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

Dies ist eine überladene Funktion.

Dies ist ein QShortcut Convenience Konstruktor, der das activated() Signal des Shortcuts mit functor verbindet.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Dies ist eine überladene Funktion.

Dies ist ein bequemer QShortcut-Konstruktor, der das activated()-Signal des Shortcuts mit dem functor verbindet.

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

Dies ist eine überladene Funktion.

Dies ist ein bequemer QShortcut-Konstruktor, der das activated()-Signal des Shortcuts mit dem functor verbindet.

Der functor kann ein Zeiger auf eine Mitgliedsfunktion des context Objekts sein.

Wenn das context Objekt zerstört wird, wird das functor nicht aufgerufen.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Dies ist eine überladene Funktion.

Dies ist ein bequemer QShortcut-Konstruktor, der das activated()-Signal des Shortcuts mit dem functor verbindet.

Der functor kann ein Zeiger auf eine Mitgliedsfunktion des context Objekts sein.

Wenn das context Objekt zerstört wird, wird functor nicht aufgerufen.

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

Dies ist eine überladene Funktion.

Dies ist ein bequemer QShortcut-Konstruktor, der das activated()-Signal des Shortcuts mit dem functor und activatedAmbiguously()-Signal mit dem functorAmbiguous verbindet.

Die functor und functorAmbiguous können ein Zeiger auf eine Mitgliedsfunktion des context Objekts sein.

Wenn das context Objekt zerstört wird, werden die functor und functorAmbiguous nicht aufgerufen.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Dies ist eine überladene Funktion.

Dies ist ein bequemer QShortcut-Konstruktor, der das activated()-Signal des Shortcuts mit dem functor und activatedAmbiguously()-Signal mit dem functorAmbiguous verbindet.

Die functor und functorAmbiguous können ein Zeiger auf eine Mitgliedsfunktion des context Objekts sein.

Wenn das context Objekt zerstört wird, werden functor und functorAmbiguous nicht aufgerufen.

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

Dies ist eine überladene Funktion.

Dies ist ein bequemer QShortcut-Konstruktor, der das activated()-Signal des Shortcuts mit dem functor und activatedAmbiguously()-Signal mit dem functorAmbiguous verbindet.

functor kann ein Zeiger auf eine Mitgliedsfunktion des context1 Objekts sein. Das functorAmbiguous kann ein Zeiger auf eine Mitgliedsfunktion des context2 Objekts sein.

Wenn das context1 Objekt zerstört wird, wird functor nicht aufgerufen. Wenn das context2 Objekt zerstört wird, wird functorAmbiguous nicht aufgerufen.

Diese Funktion wurde in Qt 6.0 eingeführt.

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)

Dies ist eine überladene Funktion.

Dies ist ein bequemer QShortcut-Konstruktor, der das activated()-Signal des Shortcuts mit dem functor und activatedAmbiguously()-Signal mit dem functorAmbiguous verbindet.

functor kann ein Zeiger auf eine Mitgliedsfunktion des context1 Objekts sein. Das functorAmbiguous kann ein Zeiger auf eine Mitgliedsfunktion des context2 Objekts sein.

Wenn das context1 Objekt zerstört wird, wird functor nicht aufgerufen. Wenn das context2 Objekt zerstört wird, wird functorAmbiguous nicht aufgerufen.

[virtual noexcept] QShortcut::~QShortcut()

Zerstört die Verknüpfung.

[signal] void QShortcut::activated()

Dieses Signal wird ausgegeben, wenn der Benutzer die Tastenfolge des Tastaturkürzels eingibt.

Siehe auch activatedAmbiguously().

[signal] void QShortcut::activatedAmbiguously()

Wenn eine Tastenfolge auf der Tastatur eingegeben wird, gilt sie als mehrdeutig, solange sie den Anfang von mehr als einer Tastenkombination darstellt.

Wenn die Tastenfolge einer Tastenkombination abgeschlossen ist, wird activatedAmbiguously() ausgegeben, wenn die Tastenfolge immer noch mehrdeutig ist (d. h. sie ist der Anfang einer oder mehrerer anderer Tastenkombinationen). Das Signal activated() wird in diesem Fall nicht ausgegeben.

Siehe auch activated().

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

Gibt die Liste der Tastenkombinationen zurück, die diesen Shortcut auslösen.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch key und setKeys().

QWidget *QShortcut::parentWidget() const

Gibt das übergeordnete Widget der Verknüpfung zurück.

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

Setzt die Auslöser auf diejenigen, die der Standardtaste key entsprechen.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch key und keys().

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

Setzt keys als Liste der Tastenkombinationen, die den Shortcut auslösen.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch key und keys().

void QShortcut::setWhatsThis(const QString &text)

Legt die "Was ist das?"-Hilfe der Verknüpfung text fest.

Der Text wird angezeigt, wenn sich eine Widget-Anwendung im Modus "Was ist das?" befindet und der Benutzer die Tastenkombination key() eingibt.

Um die "Was ist das?"-Hilfe für einen Menüpunkt (mit oder ohne Tastenkürzel) zu setzen, setzen Sie die Hilfe auf die Aktion des Punktes.

Standardmäßig ist der Hilfetext eine leere Zeichenkette.

Diese Funktion hat keine Wirkung in Anwendungen, die keine Widgets verwenden.

Siehe auch whatsThis(), QWhatsThis::inWhatsThisMode(), und QAction::setWhatsThis().

QString QShortcut::whatsThis() const

Gibt den "Was ist das?"-Hilfetext der Abkürzung zurück.

Siehe auch setWhatsThis().

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