qq_45043457 2022-11-22 11:13 采纳率: 33.3%
浏览 53
已结题

QT 事件循环问题之QEventLoop

QT中如果在QApplication.exec()之前执行QEventLoop.exec(), 简要代码如下:

代码

int main(int argc, char *argv[]){
     ........
    QEventLoop eventLoop;
    QTimer timer;
    timer.setSingleShot(true);
    QObject::connect(&timer, SIGNAL(timeout()), &eventLoop, SLOT(quit()));
    QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
    timer.start(timeout);
    eventLoop.exec(QEventLoop::ExcludeUserInputEvents);
    .......
    QApplication a(argc, argv);
    a.exec();
}

为什么程序会阻塞在eventLoop.exec()?

  • 写回答

3条回答 默认 最新

  • mideum 2022-11-22 14:47
    关注

    试试把QApplication a(argc, argv);挪到最上面

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月26日
  • 已采纳回答 1月18日
  • 创建了问题 11月22日