QML MouseArea 将事件传播到按钮

Sol*_*dus 5 qt android qml qtquick2

我正在开发一个应用程序,它有一个类似于 Gmail/Inbox 应用程序菜单的菜单,适用于 Android。基本上,当您按下按钮打开菜单时,它会滑入视图。用户可以将其滑开或按下菜单上的按钮。对于滑动,我使用了SwipeArea来自kovrov的代码,稍作改动来检查按下和释放之间的速度 - 如果它太慢,我不认为它是滑动。我还在MouseArea, ie上将传播属性设置为 truepropagateComposedEvents: true并为 clicked 事件添加了以下代码:

onClicked: {
    mouse.accepted = false;
}
Run Code Online (Sandbox Code Playgroud)

现在我有以下代码:

Button {
    x: 10
    y: 50
    width: 200
    onClicked: {
        console.log("Button clicked!");
    }
}
SwipeArea {
    anchors.fill: parent

    onMove: {
        var newX = menu.x + x;
        if(newX <= menu.maxX && newX >= menu.minX) menu.x = newX;
    }
    onSwipe: {
        if(direction === "left" && timePassed <= menu.fastSwipe) root.hideMenu(menu.x, timePassed);
        else {
            var middle = menu.width/2;
            var end = menu.x + menu.width;
            if(end > middle) root.showMenu(menu.x);
            else if(end <= middle) root.hideMenu(menu.x);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果Button呈现在顶部(下面的代码SwipeArea)它可以工作,但滑动将无法在Button. 如果Button被替换为 ,MouseArea则事件被正确触发。似乎该事件没有被传播?有没有办法将事件传播到按钮?还是我要创造我自己的按钮(RectangleMouseArea,例如)?

感谢您的时间。