如果我尝试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)
注意:这是有效的,因为它QtObject是QObject所有 Qt 对象的基础