Qt/QML: MouseArea в Flickable не сигнализирует об отпускании / нажатии при нажатии на сенсорный экран после обновления

После обновления с Qt 5.4.1 до 5.9.1 следующий код изменил поведение при использовании сенсорного экрана:

import QtQuick 2.1
import QtQuick.Window 2.2

Window {
    visible: true
    width: flick.width + 2*grid.spacing
    height: flick.height + 2*grid.spacing

    property int rectHeight: 65
    property int rectWidth: 100

    Flickable {
        id: flick
        pressDelay: 100
        contentWidth: grid.width
        anchors {
            top: parent.top
            left: parent.left
            leftMargin: grid.spacing
            topMargin: grid.spacing
        }

        height: rectHeight * grid.rows + grid.spacing * (grid.rows-1)
        width: rectWidth * (3 + 0.5) + grid.spacing * 3

        Grid {
            id: grid
            rows: 6
            columns: 12
            spacing: 12

            Repeater {
                id: repeater
                model: parent.rows * parent.columns
                Rectangle {
                    color: "#3333FF"
                    width: rectWidth
                    height: rectHeight

                    MouseArea {
                        anchors.fill: parent
                        onPressed: console.log("onPressed")
                        onReleased:console.log("onReleased")
                        onClicked: console.log("onClicked")
                    }
                }
            }
        }
    }
}

Ранее с Qt 5.4.1 и использованием мыши или сенсорного экрана, чтобы щелкнуть прямоугольник, он печатает:

qml: onPressed
qml: onReleased
qml: onClicked

В настоящее время с Qt 5.9.1 и с помощью мыши он все равно работает при нажатии на прямоугольник:

 qml: onPressed
 qml: onReleased
 qml: onClicked

Но с Qt 5.9.1 и с помощью сенсорного экрана, чтобы щелкнуть прямоугольник, он печатает только

 qml: onPressed

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

Если я изменю

pressDelay: 0

Затем при нажатии мыши область мыши испускала все 3 сигнала, но для меня это не решение, так как это приводит к тому, что при щелчке мышечный сигнал испускается из области мыши.

0 ответов

Другие вопросы по тегам