Qml 将MouseArea事件从父级传播到子级

Qml 将MouseArea事件从父级传播到子级,qml,mousearea,Qml,Mousearea,我有一个全局的MouseAreamouseareaot,它占据整个屏幕,以防止在打开弹出窗口时对特定按钮执行操作 在这个全局MouseArea下面的QML对象中,我有一个嵌套的MouseAreanestedMenuouse区域来处理我菜单上的点击 问题是,当我单击菜单时,鼠标事件被重定向到mouseareaoot,而不是nestedMenuMouseArea。这是人们所期望的行为,因为全局MouseArea覆盖了整个屏幕 我想将NestedEnumouseArea排除在MouseAreaoot的

我有一个全局的
MouseArea
mouseareaot,它占据整个屏幕,以防止在打开弹出窗口时对特定按钮执行操作

在这个全局
MouseArea
下面的
QML
对象中,我有一个嵌套的
MouseArea
nestedMenuouse区域来处理我菜单上的点击

问题是,当我单击菜单时,鼠标事件被重定向到
mouseareaoot
,而不是
nestedMenuMouseArea
。这是人们所期望的行为,因为全局
MouseArea
覆盖了整个屏幕

我想将NestedEnumouseArea排除在MouseAreaoot的影响之外,MouseAreaoot会阻止对其他
QML
对象执行任何操作

我读过关于该属性的文章,但它似乎只在孩子和父母之间起作用


我想要的是相反的:从mouseareaoot检测对NestedEnumouseArea的单击,并将事件发送给它,以便在单击代码时触发其

由于此处没有代码,我们无法找到可视的堆叠顺序

完整的鼠标区域事件传播基于您的视觉堆叠顺序

如果A是父项,B和C是A的子项,D和E是C的子项

比如:

A{
    B{}

    C{
       D{}
       E{}
     }
 }
粗略的视觉堆叠顺序为(如果未专门指定Z值)

所以鼠标区域事件传播,从E开始,到达A

除非某些鼠标区域的
enabled
属性专门设置为false

所以首先也是最重要的是你要寻找的是。。。。如何安排您的QML父子关系

接下来是检查鼠标区域的
enabled
是否为false


接下来,如评论中所说的“folibs”,请确保您将
MouseEvent.accepted
propagateComposedEvents:true一起设置为false

请提供,而不是解释您的代码。至于您的问题,您应该将其与设置为false
E D C B A.