0

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

myMouseAreaID.clicked.connect(someJavaScriptFunction)

但是对于 onPressed 和 onReleased 事件,我找不到类似的东西......

任何人都可以帮助我吗?

4

3 回答 3

2

myMouseArea.released.connect(fun)按预期工作,但pressed信号被同名的布尔属性遮蔽,指示当前是否按下按钮。因此,目前无法动态连接此信号。

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

于 2012-07-18T15:25:44.643 回答
0

与此同时,我找到了解决方法:

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

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

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

这有效:)

于 2012-07-18T17:21:53.937 回答
0

另一种选择是使用更具声明性的Connections类型来处理新闻:

Connections {
    target: myMouseAreaID
    onPressed: myPressedFunc()
}
于 2012-07-19T03:38:16.297 回答