应用程序冻结在窗口拖动

时间:2016-05-05 19:26:42

标签: c++ qt

我试图对外部资源进行监控(一个国家仪器采集系统产生我的程序读取的点),同时保持Gui的响应。为此,我在监控循环的每个周期调用 QCoreApplication :: processEvents()当我用鼠标光标拖动主窗口时,循环停止,直到我释放它,导致数据丢失。我相信这种行为可以在任何 QCoreApplication :: processEvents(在进程密集循环中调用以保持gui响应。

有没有办法解决这个问题,还是应该以其他方式实施监控周期?

1 个答案:

答案 0 :(得分:1)

您应该有一个单独的GUI ThreadWorker Thread。每个Qt程序在启动时都有一个称为GUI thread的线程。 Qt GUI必须在此线程中运行。 worker thread用于从主线程卸载处理工作(在您的情况下监视外部资源)。

从链接中了解有关Qt threading Basics的更多信息。