I am developing a desktop application with Qt framework. When there is a task running which causes the UI to be blocked for a while, I would like to use a mouse cursor indicating that the user should wait until the task is finished. There are two cursors available - "wait" cursor and "busy" cursor. What is the difference from the UX perspective. What are the rules when to use one or the other?
This is actually mentioned in the QT docs: https://doc.qt.io/qt-5/qt.html#CursorShape-enum
Wait Cursor: - Usually shown during operations that prevent the user from interacting with the application.
Busy Cursor: - Usually shown during operations that allow the user to interact with the application while they are performed in the background.
As a general rule, the arrow signifies that the user can interact with the UI. In the "busy" version the arrow is still being displayed, meaning that, while it makes visible that there's some process being done in the background, the user has still the ability to interact with the UI. The "wait cursor" hides the arrow instead, making it clear that the user has to wait until the process has finished. So, if the process/task blocks the UI, the wait cursor would be more accurate.