1

我曾经在我的 GUIS 中使用 TKinter,现在正试图转移到 QT Designer。我也是基于事件的编程的新手。我想做的是在按下开始按钮后连续监听我的串行端口上的通信。

我想调用一个函数 update() 来接收数据并对其进行操作并将其写入文件。然后它必须在再次调用 update() 之前处理排队的任何其他事件。显然,如果我使用 while 循环,我的 CPU 使用率将达到 100%,我的 GUI 变得无响应。在 TKinter 中,我通过使用 after_idle 调用解决了这个问题(混乱),每当 GUI 空闲时调用 update()。

使用 QT 做这种事情的最佳实践方式是什么?

4

1 回答 1

0

使用线程来监控串口。使用适当的机制与 UI(主)广告进行通信。

这样您就可以编写您的通信模块,而不必担心 UI 的事件基础性质。当然你仍然不能使用繁忙的while循环来监听串口。但是使用通常的 read() 方法超时是可以的。

队列非常适合将数据发送到 UI,您可以直接从您的 comm 线程写入文件。

于 2013-04-24T07:30:06.653 回答