QShortcut Class
QShortcut クラスは、キーボードショートカットを作成するために使用されます。詳細...
| ヘッダー: | #include <QShortcut> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 継承元: | QObject |
- 継承されたメンバーを含む、すべてのメンバーの一覧
- 非推奨のメンバー
- QShortcutはイベントクラスの一部です。
プロパティ
- autoRepeat : bool
- context : Qt::ShortcutContext
- enabled : bool
- key : QKeySequence
パブリック関数
| 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 |
シグナル
| void | activated() |
| void | activatedAmbiguously() |
詳細な説明
QShortcut クラスは、キーボードショートカットを Qtのシグナルとスロットの仕組みに結びつける手段を提供し、ショートカットが実行された際にオブジェクトに通知されるようにします。ショートカットの設定では、Shift 、Ctrl 、Alt などの修飾キーの状態を含め、キーボードショートカットを記述するために必要なすべてのキー押下を指定することができます。
ウィジェットアプリケーションでは、特定のウィジェットにおいて文字の前に「&」を付けることができます。これにより、その文字に対するニーモニック(ショートカット)が自動的に作成されます。例えば、「E&xit」とすると、ショートカットAlt+X が作成されます(実際のアンパサンドを表示するには「&&」を使用してください)。 ウィジェットは、指定されたショートカットを受け取り、それに基づくアクションを実行することがあります。X11 では、アンパサンドは表示されず、その文字には下線が引かれます。Windows では、通常、ユーザーがAlt キーを押すまでショートカットは表示されませんが、これはユーザーが変更できる設定です。 Macでは、ショートカットはデフォルトで無効になっています。有効にするには、qt_set_sequence_auto_mnemonic()を呼び出してください。ただし、ニーモニックショートカットはAquaのガイドラインに適合しないため、Qtではショートカット文字に下線は表示されません。
メニューを使用するアプリケーションの場合、QMenu クラスで提供されている便利関数を使用して、メニュー項目が作成される際にキーボードショートカットを割り当てる方が便利な場合があります。あるいは、QAction クラス内で、他の種類のアクションにショートカットを関連付けることもできます。
特定のウィジェット用のショートカットを作成する最も簡単な方法は、キーシーケンスを使用してショートカットを構築することです。例えば:
shortcut = new QShortcut(QKeySequence(tr("Ctrl+O", "File|Open")),
parent);ユーザーが特定のショートカットに対応するkey sequence を入力すると、そのショートカットのactivated()シグナルが発火します(曖昧な場合は、activatedAmbiguously()シグナルが発火します)。ショートカットは、そのショートカットの親ウィジェットがイベントを受信しているときに、Qtのイベントループによって「監視」されます。
ショートカットのキーシーケンスは、setKey() で設定し、key() で取得できます。ショートカットは、setEnabled() で有効または無効にでき、setWhatsThis() で「これは何?」というヘルプテキストを設定できます。
QShortcutEvent 、QKeySequence 、およびQActionも参照してください 。
プロパティのドキュメント
autoRepeat : bool
このプロパティは、ショートカットが自動繰り返し可能かどうかを指定します
true の場合、システムでキーボードの自動リピートが有効になっていることを条件として、キーボードショートカットの組み合わせを押し続けたときに、そのショートカットが自動リピートされます。デフォルト値は true です。
アクセス関数:
| bool | autoRepeat() const |
| void | setAutoRepeat(bool on) |
context : Qt::ShortcutContext
このプロパティは、ショートカットが有効となるコンテキストを保持します
ショートカットのコンテキストは、どのような状況でショートカットがトリガーされるかを決定します。通常のコンテキストは `Qt::WindowShortcut` であり、親(ショートカットを含むウィジェット)がアクティブな最上位ウィンドウのサブウィジェットである場合に、ショートカットがトリガーされるようになります。
デフォルトでは、このプロパティは `Qt::WindowShortcut` に設定されています。
アクセス関数:
| Qt::ShortcutContext | context() const |
| void | setContext(Qt::ShortcutContext context) |
enabled : bool
このプロパティは、ショートカットが有効かどうかにかかわらず保持されます
有効なショートカットは、そのショートカットのkey()シーケンスに一致するQShortcutEvent が発生した際に、activated()またはactivatedAmbiguously()シグナルを発行します。
アプリケーションがWhatsThis モードの場合、ショートカットはシグナルを発行せず、代わりに「What's This?」というテキストを表示します。
デフォルトでは、このプロパティはtrue に設定されています。
アクセス関数:
| bool | isEnabled() const |
| void | setEnabled(bool enable) |
「whatsThis」も参照してください 。
key : QKeySequence
このプロパティには、ショートカットのプライマリキーシーケンスが格納されます
これは、Shift、Ctrl、Altの任意の組み合わせを含むキーシーケンスです。キーシーケンスは、以下のいくつかの方法で指定できます。
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デフォルトでは、このプロパティには空のキーシーケンスが含まれます。
アクセス関数:
| QKeySequence | key() const |
| void | setKey(const QKeySequence &key) |
メンバー関数のドキュメント
[explicit] QShortcut::QShortcut(QObject *parent)
parent 用のQShortcutオブジェクトを生成します。 は、QWindow またはQWidget である必要があります。
ショートカットキーのシーケンスが指定されていないため、このショートカットはシグナルを発信しません。
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)
parent 用の QShortcut オブジェクトを構築します。 は、QWindow またはQWidget である必要があります。
このショートカットは親オブジェクトに対して動作し、standardKey に一致するQShortcutEventを監視します。イベントの曖昧性に応じて、ショートカットは、キー押下がショートカットのcontext 内で行われた場合、member 関数またはambiguousMember 関数を呼び出します。
この関数は Qt 6.0 で導入されました。
[explicit] QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)
parent に対する QShortcut オブジェクトを構築します。 は、QWindow またはQWidget である必要があります。
このショートカットは親オブジェクトに対して動作し、key シーケンスに一致するQShortcutEventをリッスンします。イベントの曖昧度に応じて、ショートカットはmember 関数を呼び出すか、キー押下がショートカットのcontext 内で行われた場合はambiguousMember 関数を呼び出します。
[since 6.0] template <typename Functor> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
これは、ショートカットのactivated()シグナルをfunctor に接続する、QShortcutの利便性向上のためのコンストラクタです。
これはオーバーロードされた関数です。
この関数は Qt 6.0 で導入されました。
template <typename Functor> QShortcut::QShortcut(const QKeySequence &key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
これは、ショートカットのactivated()シグナルをfunctor に接続する、QShortcutの便利コンストラクタです。
これはオーバーロードされた関数です。
[since 6.0] template <typename Functor> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
これは、ショートカットのactivated()シグナルをfunctor に接続する、QShortcutの便利コンストラクタです。
functor は、context オブジェクトのメンバ関数へのポインタにすることができます。
context オブジェクトが破棄された場合、functor は呼び出されません。
これはオーバーロードされた関数です。
この関数は Qt 6.0 で導入されました。
template <typename Functor> QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
これは、ショートカットのactivated()シグナルをfunctor に接続する、QShortcutの便利コンストラクタです。
functor は、context オブジェクトのメンバ関数へのポインタでも構いません。
context オブジェクトが破棄された場合、functor は呼び出されません。
これはオーバーロードされた関数です。
[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)
これは、ショートカットのactivated()シグナルをfunctor に、activatedAmbiguously()シグナルをfunctorAmbiguous に接続する、QShortcutの便利コンストラクタです。
functor およびfunctorAmbiguous には、context オブジェクトのメンバ関数へのポインタを指定できます。
context オブジェクトが破棄された場合、functor およびfunctorAmbiguous は呼び出されません。
これはオーバーロードされた関数です。
この関数は 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)
これは、ショートカットのactivated()シグナルをfunctor に、activatedAmbiguously()シグナルをfunctorAmbiguous に接続する、QShortcutの利便性向上のためのコンストラクタです。
functor およびfunctorAmbiguous は、context オブジェクトのメンバ関数へのポインタにすることができます。
context オブジェクトが破棄された場合、functor およびfunctorAmbiguous は呼び出されません。
これはオーバーロードされた関数です。
[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)
これは、ショートカットのactivated()シグナルをfunctor に接続し、activatedAmbiguously()シグナルをfunctorAmbiguous に接続する、QShortcutの利便性向上のためのコンストラクタです。
functor には、context1 オブジェクトのメンバ関数へのポインタを指定できます。functorAmbiguous には、context2 オブジェクトのメンバ関数へのポインタを指定できます。
context1 オブジェクトが破棄された場合、functor は呼び出されません。context2 オブジェクトが破棄された場合、functorAmbiguous は呼び出されません。
これはオーバーロードされた関数です。
この関数は 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)
これは、ショートカットのactivated()シグナルをfunctor に接続し、activatedAmbiguously()シグナルをfunctorAmbiguous に接続する、QShortcutの利便性向上のためのコンストラクタです。
functor には、context1 オブジェクトのメンバ関数へのポインタを指定できます。functorAmbiguous には、context2 オブジェクトのメンバ関数へのポインタを指定できます。
context1 オブジェクトが破棄された場合、functor は呼び出されません。context2 オブジェクトが破棄された場合、functorAmbiguous は呼び出されません。
これはオーバーロードされた関数です。
[virtual noexcept] QShortcut::~QShortcut()
ショートカットを削除します。
[signal] void QShortcut::activated()
このシグナルは、ユーザーがショートカットのキーシーケンスを入力したときに発生します。
activatedAmbiguously()も参照してください 。
[signal] void QShortcut::activatedAmbiguously()
キーボードでキーシーケンスが入力されている際、そのキーシーケンスが複数のショートカットの開始部分と一致している限り、そのキーシーケンスは「曖昧」であるとみなされます。
ショートカットのキーシーケンスが入力完了した時点で、そのキーシーケンスが依然として曖昧である場合(つまり、他の1つ以上のショートカットの開始部分である場合)、activatedAmbiguously() が発火します。この場合、activated() シグナルは発火しません。
activated()も参照してください 。
[since 6.0] QList<QKeySequence> QShortcut::keys() const
このショートカットを起動するキーシーケンスのリストを返します。
この関数は Qt 6.0 で導入されました。
QWidget *QShortcut::parentWidget() const
ショートカットの親ウィジェットを返します。
[since 6.0] void QShortcut::setKeys(QKeySequence::StandardKey key)
トリガーを、標準キーkey に一致するものに設定します。
この関数は Qt 6.0 で導入されました。
[since 6.0] void QShortcut::setKeys(const QList<QKeySequence> &keys)
keys を、ショートカットを起動するキーシーケンスのリストとして設定します。
この関数は Qt 6.0 で導入されました。
void QShortcut::setWhatsThis(const QString &text)
ショートカットの「これは何?」ヘルプtext を設定します。
このテキストは、ウィジェットアプリケーションが「What's This?」モードになっているときに、ユーザーがショートカットのkey()のキーシーケンスを入力すると表示されます。
メニュー項目(ショートカットキーの有無にかかわらず)に「What's This?」ヘルプを設定するには、その項目のアクションにヘルプを設定します。
デフォルトでは、ヘルプテキストは空の文字列です。
この関数は、ウィジェットを使用しないアプリケーションでは効果はありません。
whatsThis()、QWhatsThis::inWhatsThisMode()、およびQAction::setWhatsThis()も参照してください 。
QString QShortcut::whatsThis() const
ショートカットの「これは何?」ヘルプテキストを返します。
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.