QML Keys.onReleased срабатывает при нажатии клавиши - PullRequest
0 голосов
/ 20 июня 2019

Конверт:

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

Проблема: QML Keys.onПустошение срабатывает при нажатии клавиши (любая клавиша)

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Вы можете проверить 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")
    }
}
0 голосов
/ 20 июня 2019

Запустив ваш пример, я предполагаю, что ваша проблема возникает после удержания клавиши.

Чтобы не допустить этого, вы можете просто проверить атрибут isAutoRepeat при обнаружении KeyEvent:

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