9

I looked over the similar threads but it didn't help much.

I'm using QtQuick.Controls.Button in QML and I cannot change the cursor shape when hovering over the button! I want to achieve this without using MouseArea. What can be done? As I looked over the documentation I couldn't find a, say, cursorShape property or similar.

General Grievance
  • 4,555
  • 31
  • 31
  • 45
Ispas Claudiu
  • 1,890
  • 2
  • 28
  • 54

1 Answers1

12

It is kind of a hack, but you can access the Button's own MouseArea via the __behavior pseudo-private property.

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

Alternatively, you can very easily create your own improved 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
    }
}

Note that you may have to explicitly import the QML module where you defined Button in order to overshadow the QtQuick.Controls's Button.