信号参数类型无效:MouseEvent

时间:2014-09-19 12:26:09

标签: qt qml qtquick2

如果我尝试在QML定义的信号中使用MouseEvent作为arg,我在加载时会收到以下错误:

  

无效的信号参数类型:MouseEvent

Qt文档中有关于此的相互矛盾的信息,在QML signal syntax documentation中声明:

  

允许的参数类型与定义属性属性[...]中列出的参数类型相同。任何QML对象类型都可以用作属性类型。

虽然在QML/C++ interaction documentation中声明:

  

当QML对象类型用作信号参数时,参数应使用var作为类型

将参数设置为使用var确实有效,但根据QML文档,这似乎是不必要的。有关此in the distant past的错误,但在v5.0.0中显然已得到解决。所以我做错了,还是回归?

修改

一个简单的演示:

import QtQuick 2.3

Item {
    signal sig( MouseEvent mouse )
}

1 个答案:

答案 0 :(得分:0)

改为使用QtObject

signal sig(QtObject mouse)

注意:之所以有效,是因为QtObject是普通的QObject,它是所有Qt对象的基础