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 のシグナルとスロットのメカニズムに接続する方法を提供します。ショートカットは、ShiftCtrlAlt のような修飾キーの状態を含む、キーボードショートカットを記述するために必要なすべてのキー押下を含むように設定することができます。

ウィジェット・アプリケーションでは、特定のウィジェットで文字の前に「&」を使用できます。これは、その文字のニーモニック(ショートカット)を自動的に作成します。例えば、"E&exit "は、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() で "What's This?" ヘルプテキストを設定できます。

QShortcutEventQKeySequenceQActionも参照して ください。

プロパティ・ドキュメンテーション

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

デフォルトでは、このプロパティには空のキー配列が含まれます。

アクセス関数:

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

メンバ関数ドキュメント

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

QWindow またはQWidget であるべきparent の QShortcut オブジェクトを構築します。

ショートカットのキー配列が指定されていないので、ショートカットはシグナルを発しません。

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)

QWindow またはQWidget であるべきparent の QShortcut オブジェクトを構築する。

ショートカットはその親を操作し、standardKey にマッチするQShortcutEventをリッスンします。イベントの曖昧さに応じて、ショートカットはmember 関数を呼び出します。また、キーがショートカットのcontext にあった場合は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)

QWindow またはQWidget であるべきparent の QShortcut オブジェクトを構築します。

ショートカットはその親を操作し、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)

これはオーバーロードされた関数です。

これは QShortcut の便利なコンストラクタで、ショートカットのactivated() シグナルをfunctor に接続します。

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

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

これはオーバーロードされた関数です。

これは QShortcut の便利なコンストラクタで、ショートカットのactivated() シグナルをfunctor に接続します。

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

これはオーバーロードされた関数です。

これはQShortcutの便利なコンストラクタで、ショートカットのactivated() シグナルをfunctor に接続します。

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)

これはオーバーロードされた関数です。

これはQShortcutの便利なコンストラクタで、ショートカットのactivated() シグナルをfunctor に接続します。

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 の便利なコンストラクタです。

functorfunctorAmbiguous には、context オブジェクトのメンバ関数へのポインタを指定できます。

context オブジェクトが破壊された場合、functorfunctorAmbiguous は呼び出されません。

この関数は 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 の便利なコンストラクタです。

functorfunctorAmbiguous には、context オブジェクトのメンバ関数へのポインタを指定できます。

context オブジェクトが破棄されると、functorfunctorAmbiguous は呼び出されません。

[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 オブジェクトのメンバ関数へのポインタを指定できます。functorAmbiguouscontext2 オブジェクトのメンバ関数へのポインタである。

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 オブジェクトのメンバ関数へのポインタを指定できます。functorAmbiguouscontext2 オブジェクトのメンバ関数へのポインタである。

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

keykeys()も参照してください

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

ショートカットをトリガーするキー配列のリストとしてkeys を設定します。

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

keykeys()も参照してください

void QShortcut::setWhatsThis(const QString &text)

ショートカットの "What's This? "ヘルプtext を設定する。

このテキストは、ウィジェット・アプリケーションが "What's This? "モードで、ユーザがショートカットkey() シーケンスをタイプしたときに表示されます。

メニュー・アイテム(ショートカット・キーの有無にかかわらず)に "What's This? "ヘルプを設定するには、アイテムのアクションにヘルプを設定します。

デフォルトでは、ヘルプテキストは空文字列です。

この関数は、ウィジェットを使用しないアプリケーションでは効果がありません。

whatsThis()、QWhatsThis::inWhatsThisMode()、QAction::setWhatsThis()も参照して ください。

QString QShortcut::whatsThis() const

ショートカットの "What's This?" ヘルプテキストを返します。

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.