检测鼠标悬停在除Scene3D QML以外的ui元素时



我有一个带有Scene3D QML对象的Qt3D应用程序,它只用于渲染我的3D场景,在此之上,我有常规的2D QML项目/对象来渲染我的ui。

我想修改光标的形状每当用户悬停在3d场景,并重置光标当他进入任何2d小部件。

是否有一种优雅的方式来做到这一点?我试图在Scene3D上添加一个鼠标区域,但这不起作用。或者在所有其他组件之后添加一个,以便它是最后一个捕获鼠标事件,但如果我理解正确的话,这意味着我必须返回并将MouseArea添加到我拥有的每个QML组件中。

谢谢你的帮助。

我不知道你的问题是什么(因为你没有发布代码),但以下简单的MouseArea(在Rectangle中,场景视图是)似乎对我有用:

MouseArea {
hoverEnabled: true
anchors.fill: parent
cursorShape: containsMouse ? Qt.PointingHandCursor : Qt.ArrowCursor
}

复位到ArrowCursor就可以了。

最新更新