我启动了一个执行长时间操作的进程,我想给出视觉反馈以指示正在发生某些事情,所以我想将光标更改为忙碌状态,并在接收到QProcess::finished
信号时恢复光标。
我启动了一个执行长时间操作的进程,我想给出视觉反馈以指示正在发生某些事情,所以我想将光标更改为忙碌状态,并在接收到QProcess::finished
信号时恢复光标。
Qsiris的解决方案是"小部件范围内的"。如果您想为整个应用程序更改光标,则使用
QApplication::setOverrideCursor(Qt::WaitCursor);
和
QApplication::restoreOverrideCursor();
注意:正如 @Ehsan Khodarahmi 指出的那样,直到触发下一个QT事件或手动调用QApplication::processEvents(),光标才会改变。
使用此方法在进程开始时设置光标为等待状态:
this->setCursor(Qt::WaitCursor);
并将其用于将光标恢复为正常状态(将其放入QProcess::finished的插槽中)
this->setCursor(Qt::ArrowCursor);
unsetCursor()
。它会继承父窗口的光标,这是在显式设置光标之前的行为:https://doc.qt.io/qt-5/qwidget.html#cursor-prop - Michael
QApplication::processEvents()
,光标都不会改变。 - Ehsan KhodarahmisetEnabled(false)
。 - AntonK