我正在开发一款将QML用于其UI的游戏。
我想用一次更符合游戏风格的游标样式替换所有游标样式(例如指向手指而不是正常的Qt::ArrowCursor
)。
调用QGuiApplication::setOverrideCursor()
接缝而非是一个实用的解决方案,因为我无法覆盖"每个MouseArea
来调用replaceCursor()
魔法全局函数。例如,光标位于TableView
内的更改列目前无法进行操作。
对我来说,最实用的解决方案是替换所有游标的外观,但将Qt与任务一起正确选择光标样式。
感谢您的帮助!
答案 0 :(得分:1)
您仍然可以使用QGuiApplication::setOverrideCursor()
来装饰鼠标区域。它的工作方式类似于堆栈,您可以设置然后恢复游标,因此您首先从main.cpp
设置初始游标,然后使用"重载" MouseArea
也使用setOverrideCursor()
设置其光标,而不是使用QML功能。
例如:
onContainsMouseChanged: {
if (containsMouse) Sys.setOverrideCursor(yourCursortype)
else Sys.restoreOverrideCursor()
}
当然,这意味着您必须创建一个辅助对象,该对象将从C ++调用这些函数,并将其公开给QML,以便可以从那里调用它。