我想声明一个Item
作为孩子,有一些MouseArea
和DropArea
s。一个例子只有一个:
import QtQuick 2.7
Item {
id: root
signal clicked(int someValue, QtObject mouse) // MouseEvent fails
signal entered(int someValue, QtObject drag) // DragEvent fails
MouseArea {
id: mArea
anchors.fill: parent
onClicked: {
console.log(mouse) // Tells me: QQuickMouseEvent(0x...)
root.clicked(5, mouse)
}
}
DropArea {
id: dArea
anchors.fill: parent
keys: ['exampleKey']
onEntered: {
console.log(drag) // Tells me:QQuickDropEvent(0x...)
root.entered(12, drag)
}
}
}
我想转发事件,但是要向它添加更多信息,因此我触发处理信号并触发新的暴露信号。
我唯一失败的,就是转发MouseEvent
,分别转发DragEvent
,导入QtQuick 2.7
之后,文档应该是类型(正如我所做的那样)。但我猜他们是相关的对象,因为console.log(mouse)
告诉我它是QQuickMouseEvent
。
QML告诉我:
无效的信号参数类型:MouseEvent
我想这个解决方案很简单,但我无法在任何地方找到它。如果有一个我可以替代使用的基类,它甚至没有记录。
编辑:/ A基类是QtObject。但是文档失败了。这是一个错误吗?或者我错了?