このページでは

QShortcut Class

QShortcut クラスは、キーボードショートカットを作成するために使用されます。詳細...

ヘッダー: #include <QShortcut>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
継承元: QObject

プロパティ

パブリック関数

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

シグナル

詳細な説明

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 で導入されました。

key およびsetKeys()も参照してください 。

QWidget *QShortcut::parentWidget() const

ショートカットの親ウィジェットを返します。

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

トリガーを、標準キーkey に一致するものに設定します。

この関数は Qt 6.0 で導入されました。

key およびkeys()も参照してください 。

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

keys を、ショートカットを起動するキーシーケンスのリストとして設定します。

この関数は Qt 6.0 で導入されました。

key およびkeys()も参照してください 。

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.