【问题标题】:Running continuous communications using QT and python使用 QT 和 python 运行持续通信
【发布时间】:2013-04-17 15:02:17
【问题描述】:

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

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

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

【问题讨论】:

    标签: python qt user-interface qt-designer serial-communication


    【解决方案1】:

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

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

    队列非常适合向 UI 发送数据,您可以直接从通信线程写入文件。

    【讨论】:

      猜你喜欢
      • 2019-11-25
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 2015-02-16
      • 2020-05-08
      相关资源
      最近更新 更多