Keys QML 类型

为项目提供键管理。 更多...

导入语句import QtQuick

属性

信号

详细描述

所有视觉原语都支持通过Keys附属属性进行键操作。键可以通过onPressed和onReleased信令属性进行操作。

信令属性有一个KeyEvent参数,名为event,其中包含事件的详细信息。如果处理了一个键,则应将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. 指定的项目forwardTo
  2. 特定的键处理器,例如onReturnPressed
  3. onPressed,onReleased处理器
  4. 项目特定的键处理,例如TextInput键处理
  5. 父项目

如果优先级是Keys.AfterItem,键事件处理的顺序是

  1. 项目特定的键处理,例如TextInput键处理
  2. 指定的项目forwardTo
  3. 特定的键处理器,例如onReturnPressed
  4. onPressed,onReleased处理器
  5. 父项目

如果在上述任何步骤中接受事件,则键传播停止。

另请参阅KeyEventKeyNavigation附加属性

属性文档

enabled : bool

此标志启用键处理,如果为true(默认),否则不会调用任何键处理器。


forwardTo : list<Item> [只读]

此属性提供了一种将来自输入方法的键按下、键释放和键盘输入传递给其他项目的方式。当你想让一个项目处理一些键(例如,上箭头键和下箭头键),而另一个项目处理其他键(例如,左箭头键和右箭头键)时,这可能很有用。一旦已转发的键接受事件,则不再将该事件转发到列表中的后续项目。

此示例将键事件转发到两个列表

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

要查看使用forwardTo时接收到的事件的顺序,请参阅键处理优先级


priority : enumeration

此属性确定是否在附加项目自己的键处理之前或之后处理键。

常量描述
Keys.BeforeItem(默认) 在正常项目键处理之前处理键事件。如果事件被接受,则不会传递给该项目。
Keys.AfterItem在正常项目键处理之后处理键事件。如果项目接受键事件,则它不会被Keys附加属性处理器处理。

另请参阅键处理优先级


信号文档

asteriskPressed(KeyEvent event)

当按下星号 "*" 时,会发出此信号。参数 event 提供了事件信息。

注意:相应的处理程序是 onAsteriskPressed


backPressed(KeyEvent event)

当按下 Back 键时,会发出此信号。参数 event 提供了事件信息。

注意:相应的处理程序是 onBackPressed


backtabPressed(KeyEvent event)

当按下 Shift+Tab 组合键(Backtab)时,会发出此信号。参数 event 提供了事件信息。

注意:相应的处理程序是 onBacktabPressed


callPressed(KeyEvent event)

当按下 Call 键时,会发出此信号。参数 event 提供了事件信息。

注意:相应的处理程序是 onCallPressed


cancelPressed(KeyEvent event)

当按下 Cancel 键时,会发出此信号。参数 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)

当回车键被按下时,此信号将被触发。参数 event 提供了有关事件的详细信息。

注意:相应的事件处理器为 onEnterPressed


escapePressed(KeyEvent event)

当 Esc 键被按下时,此信号将被触发。参数 event 提供了有关事件的详细信息。

注意:相应的事件处理器为 onEscapePressed


flipPressed(KeyEvent event)

当翻键被按下时,此信号将被触发。参数 event 提供了有关事件的详细信息。

注意:相应的事件处理器为 onFlipPressed


hangupPressed(KeyEvent event)

当挂起键被按下时,此信号将被触发。参数 event 提供了有关事件的详细信息。

注意:相应的处理程序是 onHangupPressed.


leftPressed(KeyEvent event)

当左箭头键被按下时,会发出此信号。参数event提供了有关事件的详细信息。

注意:相应的处理程序是 onLeftPressed.


当菜单键被按下时,会发出此信号。参数event提供了有关事件的详细信息。

注意:相应的处理程序是 onMenuPressed.


noPressed(KeyEvent event)

当否键被按下时,会发出此信号。参数event提供了有关事件的详细信息。

注意:相应的处理程序是 onNoPressed.


pressed(KeyEvent event)

当某个键被按下时,会发出此信号。参数event提供了有关事件的详细信息。

注意:相应的处理程序是 onPressed.


released(KeyEvent event)

当一个键被释放时,会发出此信号。参数event提供了有关事件的详细信息。

注意:相应的处理程序是 onReleased.


returnPressed(KeyEvent event)

当回车键被按下时,会发出此信号。参数event提供了有关事件的详细信息。

注意:相应的处理程序是 onReturnPressed.


rightPressed(KeyEvent event)

当右箭头键被按下时,会发出此信号。参数event提供了有关事件的详细信息。

注意:相应的处理程序是 onRightPressed.


selectPressed(KeyEvent event)

当选择键被按下时,会发出此信号。参数event提供了有关事件的详细信息。

注意:相应的处理程序是 onSelectPressed.


shortcutOverride(KeyEvent event)

当按下可以潜在的用作快捷键的键时,会发出此信号。参数event提供了有关事件的详细信息。

如果希望防止其他类型(如 Shortcut)使用按下的键作为快捷键,请设置event.acceptedtrue。例如

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")
}

与其他信号一样,只有当项目具有activeFocus属性时,shortcutOverride才会为该项目发出。

注意:相应的处理程序是 onShortcutOverride.

另请参见:Shortcut.


spacePressed(KeyEvent event)

当空格键被按下时,会发出此信号。参数event提供了有关事件的详细信息。

注意:相应的处理程序是 onSpacePressed.


tabPressed(KeyEvent event)

当Tab键被按下时,会发出此信号。参数event提供了有关事件的详细信息。

注意:相应的处理程序是 onTabPressed.


upPressed(KeyEvent event)

当向上箭头键被按下时发出此信号。事件参数提供了关于此事件的信息。

注意: 对应的事件处理程序是 onUpPressed


volumeDownPressed(KeyEvent event)

当音量减小键被按下时发出此信号。事件参数提供了关于此事件的信息。

注意: 对应的事件处理程序是 onVolumeDownPressed


volumeUpPressed(KeyEvent event)

当音量增大键被按下时发出此信号。事件参数提供了关于此事件的信息。

注意: 对应的事件处理程序是 onVolumeUpPressed


yesPressed(KeyEvent event)

当是键被按下时发出此信号。事件参数提供了关于此事件的信息。

注意: 对应的事件处理程序是 onYesPressed


© 2024 Qt公司有限。本文件中包含的文档贡献的所有权归各自所有者所有。本文件提供的文档根据自由软件基金会发布的GNU自由文档许可1.3版的条款进行许可。Qt及其相关标志是芬兰和/或全球其他国家的Qt公司的商标。所有其他商标均属于其各自所有者。