QML Keys.onReleased 按键时触发

Posted

技术标签:

【中文标题】QML Keys.onReleased 按键时触发【英文标题】:QML Keys.onReleased fire when pressing key 【发布时间】:2019-06-20 09:46:06 【问题描述】:

环境:

Qt 5.13 + Mingw32 + Windows 10 64bit

Qt 5.11 + Mingw32 + Windows 10 64bit

演示代码:

import QtQuick 2.12
import QtQuick.Window 2.12

Window 
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    Item 
        id: name
        anchors.fill: parent
        focus: true
        Keys.onReleased: console.log("onReleased")
    

问题:(任意键)

【问题讨论】:

【参考方案1】:

通过运行您的示例,我假设您的问题发生在持有密钥后。

为防止您在捕获KeyEvent 时简单地检查isAutoRepeat 属性:

Keys.onReleased: if (!event.isAutoRepeat) console.log("onReleased")

【讨论】:

【参考方案2】:

你可以从event查看isAutoRepeat

Item 
    id: name
    anchors.fill: parent
    focus: true
    Keys.onReleased: 
        if (!event.isAutoRepeat)
            console.log("released")
        else
            console.log("repeated like in a text field")
    

【讨论】:

以上是关于QML Keys.onReleased 按键时触发的主要内容,如果未能解决你的问题,请参考以下文章

qml自学笔记------自己写相似于劲舞团的按键小游戏(中)

js按键事件

如何在按键被按下时触发事件?

Qml - ReferenceError:屏幕未定义

QML - .qml 文件中的“连接”不会触发来自 python 脚本的信号

qml 按钮不触发,与 MouseArea 相同