无效的信号参数类型:MouseEvent

cma*_*t85 6 qt qml qtquick2

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

无效的信号参数类型:MouseEvent

Qt 文档中存在与此相关的冲突信息,在QML 信号语法文档中,它指出:

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

QML/C++ 交互文档中,它指出:

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

将参数设置为 usevar确实有效,但根据 QML 文档,这似乎没有必要。在很久以前有一个关于这个的错误,但它显然在 v5.0.0 中得到了解决。所以我做错了什么,还是这是一个回归?

编辑

一个简单的演示:

import QtQuick 2.3

Item {
    signal sig( MouseEvent mouse )
}
Run Code Online (Sandbox Code Playgroud)

S.M*_*avi -1

改用QtObject

signal sig(QtObject mouse)
Run Code Online (Sandbox Code Playgroud)

注意:这是有效的,因为它QtObjectQObject所有 Qt 对象的基础