Change cursor to hourglass/wait/busy cursor and back in Qt

I spawn a process that performs a lengthy operation, and I'd like to give visual feedback that something is happening, so I want to change the cursor to busy and restore it when I receive the QProcess::finished signal.


Solution 1:

Qsiris solution is "widget wide". If you want to change cursor for your whole application then use

QApplication::setOverrideCursor(Qt::WaitCursor);

and

QApplication::restoreOverrideCursor();

Note: As @Ehsan Khodarahmi pointed out, the cursor will NOT change until triggering next QT event or calling QApplication::processEvents() manually.

Solution 2:

Use this to set the cursor to wait when the process begins:

this->setCursor(Qt::WaitCursor);

And this to restore the cursor back to normal (put this in the slot for QProcess::finished)

this->setCursor(Qt::ArrowCursor);