菜单在中心而不是被触摸的地方弹出

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 位置,并在打开之前设置Menux,y 属性。 【参考方案1】:

感谢 Ramkumar R 的回答。现在它在弹出窗口中使用 mouse.x 和 mouse.y 时有效:

MouseArea 
        anchors.fill: parent
        onPressAndHold:mapPopupMenu.popup(mouse.x, mouse.y)
    

【讨论】:

以上是关于菜单在中心而不是被触摸的地方弹出的主要内容,如果未能解决你的问题,请参考以下文章

长按和触摸开始

可触摸的不透明标题 React Native

滚动后,在错误区域检测到触摸(iPad / 网站)

弹出菜单层后cocos2d层不响应触摸

在场景之间切换会冻结触摸

如何处理支持触摸和指针事件的设备上的触摸事件,其菜单包含不是父菜单的子项的子项