如何设置按=鼠标区域qml的false



我已经面对下一个情况:

我有一个带有Mousearea的物品。这是屏幕上的我的按钮 - 键盘。

  1. 我在键盘上强制按下按钮。
  2. 我不释放此按钮(持有)。
  3. 在Onpressed {}信号处理程序中,我正在打开另一个屏幕。
  4. 我来自键盘的Buton不再收到发布信号。
  5. 当我回到上一个键盘时 - 我的按钮仍然按下。

我尝试设置"按" = false,但这是ReadOnly属性。

我试图发出repares()信号,但它并未清楚"按'标志。但是我认为我以错误的方式做到了。函数释放采用参数 - mouseevent。鼠标参数提供有关点击的信息,包括单击的释放的X和Y位置,以及是否持有点击。而且我没有找到如何正确设置它。

我尝试更新Mousearea,这无济于事。

我不知道我还必须尝试删除"压"标志。

我的鼠标区域很简单:

MouseArea {
    id: mouseArea
    property bool haveToRelease: false
    onHaveToReleaseChanged: {
        if(haveToRelease)
        {
            console.log("BaseButton.qml: call canceled()")
            released()
            haveToRelease = false
        }
    }
    anchors.fill: parent
    hoverEnabled: true
    onReleased: {
        console.log("BaseButton.qml: onReleased")
    }
    onPressedChanged: {
        console.log("BaseButton.qml: onPressedChanged, pressed = ", pressed)
    }
}

在我的按钮中,我有一个处理程序:

onVisibleChanged: {
    if(config.isToyota && !visible && pressed) {
        console.log("Key.qml :: config.isToyota && !visible && pressed")
        releaseButton = true
    }
}

如果有人帮助我解决这个问题,我会感到高兴!非常感谢!

至于我的工作原理:

Window {
    visible: true
    width: 640
    height: 480
    Rectangle {
        width: 100
        height: 100
        anchors.centerIn: parent
        color: "orange"
        MouseArea {
            anchors.fill: parent
            onPressed: {
                console.log("pressed");
                wnd.show();
                released(mouse);
            }
            onReleased: {
                console.log("released");
            }
            onPressedChanged: console.log("pressed: " + pressed );
        }
    }
    Window {
        id: wnd
        width: 200
        height: 200
    }
}

输出:

qml: pressed
qml: released
qml: pressed: true
qml: pressed: false

相关内容

  • 没有找到相关文章

最新更新