QML Keys.on按下键时释放火焰

时间:2019-06-20 09:46:06

标签: windows qt qml mingw32

Env:

Qt 5.13 + Mingw32 + Windows 10 64位

Qt 5.11 + Mingw32 + Windows 10 64位

演示代码:

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

问题:QML Keys.on按下键(任意键)时释放火焰

2 个答案:

答案 0 :(得分:0)

从运行您的示例开始,我认为您的问题是在按住键后发生的。

为防止这种情况,您可以在捕获KeyEvent时简单地检查isAutoRepeat属性:

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

答案 1 :(得分:0)

您可以从isAutoRepeat中查看event

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