问题

如果 while 循环里面什么都不干,会导致qt的gui阻塞,信号槽可能无法响应

qt 事件循环

可以采用qt的事件循环解决这个问题:

  1. #include <QCoreApplication>
  2. while(true){
  3. QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
  4. }

在while中,执行 QCoreApplication::processEvents(QEventLoop::AllEvents, 100)
原理是收到处理一下等待响应的事件
这样就不会卡死。