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 сигнала, но для меня это не решение, так как это приводит к тому, что при щелчке мышечный сигнал испускается из области мыши.