检测按下并按住 QML 中的按钮

mar*_*trz 4 qt menu qt4 button qml

我想在用户按住 Button 时打开上下文菜单(为了方便起见,我使用 Button)。如果我做

    Button
    {
        text: model.ualabel

        MouseArea
        {
            preventStealing: true
            anchors.fill: parent
            onPressAndHold: uaContextMenu.open()
        }

        ContextMenu
        {
            id: uaContextMenu
            MenuLayout
            {
                MenuItem { /**/ } 
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后负责 pressAndHold 的 MouseArea 会窃取所有手势,即使无法单击 Button。我究竟做错了什么?我正在使用 Qt 4.7 并导入QtQuick 1.1com.nokia.meego 1.0

谢谢

rsh*_*sht 5

我发现可以像这样在 QML 的 Button 上模拟按住:

Button {
    id: button

    signal pressAndHold()

    Timer {
        id: longPressTimer

        interval: 2000 //your press-and-hold interval here
        repeat: false
        running: false

        onTriggered: {
            button.pressAndHold()
        }
    }


    onPressedChanged: {
        if ( pressed ) {
            longPressTimer.running = true;
        } else {
            longPressTimer.running = false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)