如何在不使用 MouseArea 的情况下更改光标的形状?

How to change the cursor's shape without using MouseArea?

我查看了类似的帖子,但没有太大帮助。

我在 QML 中使用 QtQuick.Controls.Button,当鼠标悬停在按钮上时我无法更改光标形状!我想在不使用 MouseArea 的情况下实现这一点。可以做什么?当我查看文档时,我找不到 cursorShape 属性 或类似的。

这有点骇人听闻,但您可以通过 __behavior pseudo-private 属性.[= 访问 Button 自己的 MouseArea 19=]

Button {
    text: qsTr("Hello World")
    Component.onCompleted: __behavior.cursorShape = Qt.PointingHandCursor
}

或者,您可以很容易地创建自己的改进 Button:

import QtQuick 2.3
import QtQuick.Controls 1.2

Button {
    property alias cursorShape: mouseArea.cursorShape

    MouseArea
    {
        id: mouseArea
        anchors.fill: parent
        onPressed:  mouse.accepted = false
    }
}

请注意,您可能必须显式导入定义 Button 的 QML 模块,以掩盖 QtQuick.ControlsButton