菜单在中心而不是被触摸的地方弹出
Posted
技术标签:
【中文标题】菜单在中心而不是被触摸的地方弹出【英文标题】:Menu pops up at center rather than touched place 【发布时间】:2020-05-29 18:45:39 【问题描述】:尝试在地图上创建菜单时,在 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()
【问题讨论】:
获取当前鼠标 x,y 位置,并在打开之前设置Menu
的x,y
属性。
【参考方案1】:
感谢 Ramkumar R 的回答。现在它在弹出窗口中使用 mouse.x 和 mouse.y 时有效:
MouseArea
anchors.fill: parent
onPressAndHold:mapPopupMenu.popup(mouse.x, mouse.y)
【讨论】:
以上是关于菜单在中心而不是被触摸的地方弹出的主要内容,如果未能解决你的问题,请参考以下文章