You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt Quick 6.9+ ContextMenu在Android 15+上无法正常触发?

解决Android 15+上Qt Quick ContextMenu长按不触发的问题

问题原因

Android 15(API 35)及以上系统对触摸交互的处理逻辑有调整,Qt Quick Controls的ContextMenu附加类型默认的长按触发机制在该版本上无法正常生效,导致长按目标控件时无法弹出菜单。

解决方案

通过显式添加MouseArea监听长按事件,手动调用上下文菜单的open()方法即可解决,修改后的代码如下:

import QtQuick
import QtQuick.Window
import QtQuick.Controls

ApplicationWindow {
    visible: true
    width: 360
    height: 520

    Rectangle {
        width: 200
        height: 200
        color: "red"

        MouseArea {
            anchors.fill: parent
            acceptedButtons: Qt.RightButton | Qt.LeftButton
            onLongPressed: contextMenu.open()
        }

        ContextMenu.menu: Menu {
            id: contextMenu
            MenuItem { text: "Option 1" }
        }
    }
}

额外说明

  • 这种方式绕过了ContextMenu附加类型的默认触发逻辑,直接通过手势事件手动触发,兼容性更好,适配Android高版本的交互规则。
  • 代码中acceptedButtons同时包含左右键,桌面端右键点击也能正常触发菜单,兼顾多平台使用场景。

内容的提问来源于stack exchange,提问作者Nullarity

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 10:16:03