У меня есть внешнее приложение Qt, которое подключается к внутреннему серверу на другом компьютере. И он продолжает посылать сообщения о сердцебиении, чтобы сообщить, что он жив.
Проблема заключается в том, что когда отображается QMessageBox (с использованием QMessageBox::warning(...)
), он приостанавливает активность родительского приложения, что приводит к пропуску отправки сердечных сокращений, что в конечном итоге приводит к отключению из-за превышения количества пропущенных сердечных сокращений.
Требование состоит в том, чтобы запретить пользователю взаимодействовать с другими окнами, если отображается сообщение об ошибке.
Как это сделать наиболее эффективно и удобно?
QMessageBox
заставляет остальную часть GUI зависать до тех пор, пока окно сообщения не будет закрыто, если вы основываете хартбиты на других элементах GUI - возможно, это так, я бы рекомендовал вам использовать QTimer из потока без графического интерфейса с QThread::exec или проверьте QNetworAccessManager как предложено @0x35. - person Konrad 'Zegis'   schedule 13.11.2015