我有一个获取串行数据并显示在仪表板类型 GUI 中的 Qt 应用程序。该程序的基本结构如下:
EDIT SerialPort(从 QIODevice 继承)对象被创建,并将它们的 readyRead 信号连接到插槽。当新数据进入时,它会通过消息处理程序通过程序进行解释和发送。最终,数据进入 GUI 层,并在此处显示给用户。
该程序在 Windows 7 中运行良好,但是当我在松下笔记本电脑上运行它时,运行 Windows XP,程序启动正常,但片刻后 GUI 停止更新。我的意思是当新数据进入时,gui 不会重绘,直到用户单击按钮或调整大小。我想知道这种行为的一些可能原因是什么。我认为可能是主线程被所有传入的串行数据所淹没,但我认为 GUI 无论如何都在单独的线程中运行。我错了吗?有没有人对可能发生的事情有任何想法?