我有一个程序,它通过我在 PyQt 中编写的 gui 与我正在使用的收音机接口。显然无线电的主要功能之一是传输数据,但要连续执行此操作,我必须循环写入,这会导致 gui 挂起。由于我从未处理过线程,我尝试使用 QCoreApplication.processEvents().
来摆脱这些挂起 --- 不过,无线电需要在传输之间休眠,因此 gui 仍然会根据这些休眠持续的时间而挂起。
有没有一种简单的方法可以使用 QThread 解决这个问题?我一直在寻找有关如何使用 PyQt 实现多线程的教程,但其中大部分都是关于设置服务器的,而且比我需要的要高级得多。老实说,我什至不需要我的线程在运行时更新任何东西,我只需要启动它,让它在后台传输,然后停止它。
原文由 gwenger 发布,翻译遵循 CC BY-SA 4.0 许可协议
我创建了一个小示例,展示了处理线程的 3 种不同且简单的方法。我希望它能帮助您找到解决问题的正确方法。