QShortcut Class

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

Header: #include <QShortcut>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Inherits: 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も参照して ください。

プロパティ Documentation

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)

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)

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

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

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

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

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

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'sThis? "ヘルプ・テキストを返します。

setWhatsThis()も参照して ください。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。