web-dev-qa-db-fra.com

Changer le curseur en sablier / attendre / curseur occupé et revenir en Qt

Je lance un processus qui effectue une opération longue, et je voudrais donner un retour visuel que quelque chose se passe, donc je veux changer le curseur en occupé et le restaurer quand je reçois le QProcess::finished signal.

36
sashoalm

La solution Qsiris est "à l'échelle du widget". Si vous souhaitez changer le curseur pour l'ensemble de votre application, utilisez

QApplication::setOverrideCursor(Qt::WaitCursor);

et

QApplication::restoreOverrideCursor();

Remarque: Comme l'a souligné @Ehsan Khodarahmi, le curseur ne changera PAS avant de déclencher le prochain événement QT ou d'appeler manuellement QApplication :: processEvents ().

61
Kamil Klimek

Utilisez ceci pour positionner le curseur sur le début du processus:

this->setCursor(Qt::WaitCursor);

Et cela pour restaurer le curseur à la normale (placez-le dans l'emplacement pour QProcess :: terminé)

this->setCursor(Qt::ArrowCursor);
22
Qsiris