Сделал карту (пусть пока без пинча, там отдельные чудеса). Схема обычная. Карта елозится пальцем, вроде всё хорошо. Но мне нужно в ней ловить длинный тап пальцем. Добавляю обработчик
Item {
id: mItem
Rectangle {
id: mRect
anchors.fill: parent
Map {
id: mMap
anchors.fill: parent
.... тут вроде всё нормально
}
}
MouseArea {
anchors.fill: mMap
onPressAndHold: {
console.warn(mouse.x, mouse.y)
}
}
}
}
Получаю какой-то бред. Карта пальцем больше не двигается. При лонгтапе через
двухсекундную задержку в консоли появляются координаты мыши. Если попытаться елозить карту, они вылетают в разных местах - то есть, панорамирование ловится как серия лонгтапов. По опыту известно, что это что-то не то с размерами данных - какой-то массив очень большой, на его обработку процессорное время уходит. А какой тут массив большой? Ну разумеется, сама карта. Проверяю закомментировав всю строку anchors.fill: mMap в MouseArea. Ну да - карта снова начала елозиться пальцем, но разумеется, лонгтап уже не отрабатывается. И при замене mMap на mItem тоже никакого лонг тапа, но карта елозится.
В сетевых примерах и проблемах с Qt подобный глюк не встречал.
PS: Проблема другая - сигнал мыши к карте не проходит. По разным советам из Сети добавлял в MouseArea propagateComposedEvents: true, обработчик
onClicked: {
mouse.accepted = false;
}
, разрешение hoverEnabled: true - ничего не помогает.