当试图在地图上创建一个菜单时,当在Android上使用onPressAndHold时,菜单会弹出在地图的中心位置,而不是在地图上的触摸位置。然而,同样的代码在桌面上(Ubuntu)可以正常工作。当在地图上按住鼠标时,Ubuntu上的菜单会从鼠标位置弹出。我也尝试了Qt 5.13中的Map Viewer例子,也是一样的。能否修复Android系统的菜单位置?谢谢。
import QtQuick.Window 2.2
import QtQuick 2.11
import QtQuick.Controls 2.4
import QtLocation 5.11
import QtPositioning 5.11
Window {
id: root
visible: true
width: 640
height: 480
Plugin {
id: mapPlugin
name: "osm"
}
Menu {
id:mapPopupMenu
Action {
text: qsTr("Get coordinate")
}
}
Map {
id: map
anchors.fill: parent
plugin: mapPlugin
zoomLevel: 14
center: QtPositioning.coordinate(40,40)
activeMapType: supportedMapTypes[1]
}
MouseArea {
anchors.fill: parent
onPressAndHold:mapPopupMenu.popup()
}
}
感谢Ramkumar R的回答。现在,在弹出窗口中使用mouse.x和mouse.y就能正常工作了。
MouseArea {
anchors.fill: parent
onPressAndHold:mapPopupMenu.popup(mouse.x, mouse.y)
}