如果我尝试在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 )
}
答案 0 :(得分:0)
改为使用QtObject
signal sig(QtObject mouse)
注意:之所以有效,是因为QtObject
是普通的QObject
,它是所有Qt对象的基础