【问题标题】:Change cursor to hourglass/wait/busy cursor and back in Qt将光标更改为沙漏/等待/忙碌光标并返回 Qt
【发布时间】:2012-11-09 19:45:51
【问题描述】:

我生成了一个执行冗长操作的进程,并且我想给出正在发生的事情的视觉反馈,因此我想将光标更改为忙,并在收到QProcess::finished 信号时恢复它。

【问题讨论】:

    标签: c++ qt mouse-cursor


    【解决方案1】:

    使用它来设置光标在进程开始时等待:

    this->setCursor(Qt::WaitCursor);
    

    这可以使光标恢复正常(把它放在 QProcess::finished 的槽中)

    this->setCursor(Qt::ArrowCursor);
    

    【讨论】:

    【解决方案2】:

    Qsiris 解决方案是“widget wide”。如果要更改整个应用程序的光标,请使用

    QApplication::setOverrideCursor(Qt::WaitCursor);
    

    QApplication::restoreOverrideCursor();
    

    注意:正如@Ehsan Khodarahmi 指出的,在触发下一个QT 事件或手动调用QApplication::processEvents() 之前,光标不会改变。

    【讨论】:

    • 在触发下一个QT事件或手动调用QApplication::processEvents()之前,光标不会改变
    • @EhsanKhodarahmi:我认为您的意思是“不要忘记”,但是在与这个问题争论了一个小时之后,“不要原谅”也很有效。谢谢提醒。
    • 注意这种方式不会阻塞UI,如果你的应用是基于QWidget的,你可以使用setEnabled(false)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 2015-03-28
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多