Russell Sk. Russell Sk. - 7 days ago 7
C++ Question

How to hide cursor in QML

I wonder how to hide cursor in QML, QT 5.7.

I tried to use

QGuiApplication::setOverrideCursor(QCursor(Qt::BlankCursor));


and

app.setOverrideCursor( QCursor( Qt::BlankCursor ) );


But both doesn't work.

/home/QTProjects/main.cpp:13: error: invalid use of incomplete type 'class QCursor'
QGuiApplication::setOverrideCursor(QCursor(Qt::BlankCursor));
^


And if it possible can I hide cursor within QML not on C++ side.

Answer

You can use a disabled overlay MouseArea to hide it:

  Button {
    onClicked: console.log("clicked")
  }

  MouseArea {
    anchors.fill: parent
    enabled: false
    cursorShape: Qt.BlankCursor
  }

Just put the mouse area in the bottom of your main.qml, it will be transparent to events but still override the cursor shape.

Comments