首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PyQt中使用QThread的后台线程

在PyQt中使用QThread的后台线程
EN

Stack Overflow用户
提问于 2011-07-22 05:43:03
回答 7查看 160.1K关注 0票数 83

我有一个程序,它通过我用PyQt编写的图形用户界面与我正在使用的收音机接口。显然,无线电的主要功能之一是传输数据,但要连续这样做,我必须循环写入,这会导致gui挂起。因为我从来没有处理过线程,所以我尝试使用QCoreApplication.processEvents().来摆脱这些挂起,不过无线电需要在两次传输之间休眠,所以gui仍然会根据这些休眠持续的时间而挂起。

有没有使用QThread解决这个问题的简单方法?我一直在寻找关于如何使用PyQt实现多线程的教程,但它们中的大多数都涉及设置服务器,而且比我需要的要高级得多。老实说,我甚至不需要我的线程在运行时更新任何东西,我只需要启动它,让它在后台传输,然后停止它。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-07-22 19:18:47

我创建了一个小示例,展示了处理线程的三种不同且简单的方法。我希望它能帮助你找到解决问题的正确方法。

票数 165
EN

Stack Overflow用户

发布于 2015-10-31 23:13:41

请接受为PyQt5,Python3.4更新的答案

使用此模式启动一个worker,该worker不接受数据并在表单可用时返回数据。

1- Worker类变得更小,放在自己的文件worker.py中,便于记忆和独立的软件重用。

2- main.py文件是定义图形用户界面窗体类的文件

3-线程对象没有子类化。

4-线程对象和worker对象都属于Form对象

5-程序的步骤在注释中。

主文件是:

票数 63
EN

Stack Overflow用户

发布于 2014-02-27 13:50:45

来自Matt的非常好的示例,我修复了拼写错误,并且pyqt4.8现在很常见,所以我也删除了虚拟类,并为dataReady信号添加了一个示例

票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6783194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档