このページでは

Keys QML Type (Uncreatable)

アイテムに対するキー処理を提供します。詳細...

Import Statement: import QtQuick

注:これは作成不可能な型です。QML ではインスタンス化できません。

プロパティ

信号

詳細な説明

すべてのビジュアルプリミティブは、Keys アタッチメントタイプを介してキー処理をサポートしています。キーは、onPressed および onReleased シグナルプロパティを介して処理できます。

これらのシグナルプロパティには、イベントの詳細を含む「event」という名前のKeyEvent パラメータがあります。キーを処理する場合、イベントがアイテム階層の上位へ伝播するのを防ぐために、event.acceptedをtrueに設定する必要があります。

使用例

以下の例は、一般的な onPressed ハンドラを使用して特定のキー(この場合は左カーソルキー)を検出する方法を示しています。

Item {
    anchors.fill: parent
    focus: true
    Keys.onPressed: (event)=> {
        if (event.key == Qt.Key_Left) {
            console.log("move left");
            event.accepted = true;
        }
    }
}

一部のキーについては、onSelectPressed などの特定のシグナルプロパティを介して処理することも可能です。これらのハンドラは、自動的にevent.accepted をtrue に設定します。

Item {
    anchors.fill: parent
    focus: true
    Keys.onLeftPressed: console.log("move left")
}

キーボードコードの一覧については、Qt.Key を参照してください。

キー処理の優先順位

「Keys」アタッチメントタイプは、アタッチされたアイテムの前後でキーイベントを処理するように設定できます。これにより、イベントをインターセプトしてアイテムのデフォルト動作を上書きしたり、アイテムで処理されないキーに対するフォールバックとして機能させたりすることが可能になります。

priority が Keys.BeforeItem(デフォルト)の場合、キーイベントの処理順序は次のようになります:

  1. 特定のキーハンドラ(例: onReturnPressed)で指定されたアイテムforwardTo
  2. 特定のキーハンドラ(例:onReturnPressed
  3. onPressed、onReleased ハンドラ
  4. アイテム固有のキー処理(例:TextInput によるキー処理)
  5. 親アイテム

優先順位が Keys.AfterItem の場合、キーイベントの処理順序は次のとおりです:

  1. アイテム固有のキー処理(例:TextInput キー処理)
  2. で指定されたアイテムforwardTo
  3. 特定のキーハンドラで指定されたアイテム(例:onReturnPressed
  4. onPressed、onReleasedハンドラ
  5. 親アイテム

上記の手順のいずれかでイベントが受け入れられた場合、キーの伝播は停止します。

KeyEvent およびKeyNavigation attached propertyも参照してください 。

プロパティのドキュメント

enabled : bool

このフラグがtrueの場合(デフォルト)、キー処理が有効になります。そうでない場合は、キーハンドラは呼び出されません。

forwardTo : list<Item> [read-only]

このプロパティを使用すると、キーの押下、離し、および入力メソッドからのキーボード入力を他のアイテムに転送することができます。これは、あるアイテムに特定のキー(例:上矢印キーや下矢印キー)を処理させ、別のアイテムに他のキー(例:左矢印キーや右矢印キー)を処理させたい場合に便利です。 キーイベントが転送されたアイテムがイベントを受け入れると、そのイベントはリスト内の後続のアイテムには転送されなくなります。

この例では、キーイベントを 2 つのリストに転送しています。

Item {
    ListView {
        id: list1
        // ...
    }
    ListView {
        id: list2
        // ...
    }
    Keys.forwardTo: [list1, list2]
    focus: true
}

forwardTo を使用する際のイベント受信順序については、Key Handling Priorities を参照してください。

priority : enumeration

このプロパティは、キーが、アタッチされたアイテム自身のキー処理の前か後かで処理されるかを決定します。

定数説明
Keys.BeforeItem(デフォルト) 通常のアイテムのキー処理の前にキーイベントを処理します。イベントが受け入れられた場合、そのイベントはアイテムには渡されません。
Keys.AfterItem通常のアイテムのキー処理の後にキーイベントを処理します。アイテムがキーイベントを受け入れた場合、そのイベントは Keys アタッチメントプロパティのハンドラでは処理されません。

Key Handling Prioritiesも参照してください 。

Signal ドキュメント

asteriskPressed(KeyEvent event)

このシグナルは、アスタリスク「*」キーが押された際に発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onAsteriskPressed です。

backPressed(KeyEvent event)

このシグナルは、[戻る] キーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onBackPressed` です。

backtabPressed(KeyEvent event)

このシグナルは、Shift+Tab キーの組み合わせ(バックタブ)が押されたときに発行されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onBacktabPressed です。

callPressed(KeyEvent event)

この信号は、通話キーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onCallPressed です。

cancelPressed(KeyEvent event)

このシグナルは、[キャンセル] キーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onCancelPressed` です。

context1Pressed(KeyEvent event)

このシグナルは、Context1 キーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onContext1Pressed` です。

context2Pressed(KeyEvent event)

このシグナルは、Context2 キーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onContext2Pressed です。

context3Pressed(KeyEvent event)

このシグナルは、Context3 キーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onContext3Pressed です。

context4Pressed(KeyEvent event)

このシグナルは、Context4キーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onContext4Pressed です。

deletePressed(KeyEvent event)

このシグナルは、Delete キーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onDeletePressed です。

digit0Pressed(KeyEvent event)

このシグナルは、数字の「0」が押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onDigit0Pressed です。

digit1Pressed(KeyEvent event)

この信号は、数字の「1」が押されたときに発行されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onDigit1Pressed です。

digit2Pressed(KeyEvent event)

この信号は、数字の「2」が押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onDigit2Pressed です。

digit3Pressed(KeyEvent event)

このシグナルは、数字の「3」が押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onDigit3Pressed` です。

digit4Pressed(KeyEvent event)

この信号は、数字の「4」が押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onDigit4Pressed です。

digit5Pressed(KeyEvent event)

このシグナルは、数字の「5」が押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onDigit5Pressed` です。

digit6Pressed(KeyEvent event)

この信号は、数字の「6」が押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onDigit6Pressed です。

digit7Pressed(KeyEvent event)

このシグナルは、数字の「7」が押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onDigit7Pressed です。

digit8Pressed(KeyEvent event)

この信号は、数字の「8」が押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onDigit8Pressed です。

digit9Pressed(KeyEvent event)

この信号は、数字の「9」が押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onDigit9Pressed です。

downPressed(KeyEvent event)

このシグナルは、下矢印キーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onDownPressed です。

enterPressed(KeyEvent event)

このシグナルは、Enter キーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onEnterPressed` です。

escapePressed(KeyEvent event)

このシグナルは、Escキーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onEscapePressed です。

flipPressed(KeyEvent event)

この信号は、Flipキーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onFlipPressed です。

hangupPressed(KeyEvent event)

この信号は、Hangupキーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onHangupPressed` です。

leftPressed(KeyEvent event)

このシグナルは、左矢印キーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onLeftPressed` です。

このシグナルは、メニューキーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onMenuPressed` です。

noPressed(KeyEvent event)

このシグナルは、No キーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onNoPressed です。

pressed(KeyEvent event)

このシグナルは、キーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onPressed です。

released(KeyEvent event)

このシグナルは、キーが離されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onReleased` です。

returnPressed(KeyEvent event)

このシグナルは、Returnキーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onReturnPressed です。

rightPressed(KeyEvent event)

このシグナルは、右矢印キーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onRightPressed` です。

selectPressed(KeyEvent event)

このシグナルは、Selectキーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onSelectPressed です。

shortcutOverride(KeyEvent event)

このシグナルは、ショートカットとして使用される可能性のあるキーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

Shortcut などの他のタイプによって、押されたキーがショートカットとして使用されるのを防ぎたい場合は、event.accepted をtrue に設定してください。例:

Item {
    id: escapeItem
    focus: true

    // Ensure that we get escape key press events first.
    Keys.onShortcutOverride: (event)=> event.accepted = (event.key === Qt.Key_Escape)

    Keys.onEscapePressed: {
        console.log("escapeItem is handling escape");
        // event.accepted is set to true by default for the specific key handlers
    }
}

Shortcut {
    sequence: "Escape"
    onActivated: console.log("Shortcut is handling escape")
}

他のシグナルと同様に、shortcutOverride は、そのアイテムがactiveFocus を持っている場合にのみ、そのアイテムに対して発火されます。

注: 対応するハンドラは `onShortcutOverride` です。

「Shortcut」も参照してください 。

spacePressed(KeyEvent event)

このシグナルは、スペースキーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onSpacePressed` です。

tabPressed(KeyEvent event)

このシグナルは、Tabキーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onTabPressed` です。

upPressed(KeyEvent event)

このシグナルは、上矢印キーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onUpPressed` です。

volumeDownPressed(KeyEvent event)

このシグナルは、VolumeDown キーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onVolumeDownPressed です。

volumeUpPressed(KeyEvent event)

このシグナルは、VolumeUpキーが押されたときに発生します。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは `onVolumeUpPressed` です。

yesPressed(KeyEvent event)

この信号は、「Yes」キーが押されたときに発信されます。event パラメータは、このイベントに関する情報を提供します。

注: 対応するハンドラは onYesPressed です。

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