在QML中转发DragEvent和MouseEvent(可能的错误?)

时间:2017-01-12 13:59:06

标签: qt qml qtquick2

我想声明一个Item 作为孩子,有一些MouseAreaDropArea 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。但是文档失败了。这是一个错误吗?或者我错了?

0 个答案:

没有答案