QML - 如何在JavaScript中修改onPressed和onReleased上的MouseArea?

时间:2012-07-18 13:54:54

标签: javascript mouseevent qml

我知道我可以像这样连接onClicked事件:

myMouseAreaID.clicked.connect(someJavaScriptFunction)

但是我无法找到任何与onPressed和onReleased ...

相似的事件

任何人都可以帮我这个吗?

3 个答案:

答案 0 :(得分:2)

myMouseArea.released.connect(fun)按预期工作,但pressed信号被Boolean property with the same name遮蔽,表示当前是否按下按钮。因此,目前无法动态连接此信号。

这实际上是一个已知错误,请参阅QTBUG-24477。您现在所能做的就是重新设计您的应用程序,使其不依赖于该特定功能。

答案 1 :(得分:0)

我在此期间找到了解决方法:

MouseArea
{
    id: ma
    signal onPressedState
    onPressed: onPressedState()
}

以后在JavaScript中可以像这样使用:

function someFunction()
{
    ma.onPressedState.connect(someOtherFunction)
}

这有效:)

答案 2 :(得分:0)

另一种选择是使用更具说明性的Connections类型来处理印刷机:

Connections {
    target: myMouseAreaID
    onPressed: myPressedFunc()
}