python pyqt ui卡住的问题

发布于 2021-11-27 03:59:03 字数 369 浏览 809 评论 7

我一个爬虫程序。
shell 下运行 没有中断。一直在爬。效果还不错 因为直接关掉shell 或IDE 就可以结束了

现在我加上了pyqt 界面。 运行时候UI 会一直卡住。导致我没办法把状态信息发送到UI 根本看不到。一直处在无响应的状态  这样太影响用户体验了。

我把爬虫程序 封装在了一个类里。 然后在ui里调用他。

网上找了很多资料 说是用多线程 或多进程。   然后关掉线程。 还有说是要用异步。搞的我晕晕的。

说我要是用多线程 就要在爬虫里 每句话都要加一个判断。我觉得这太扯了。 

请大神给个建议。 能提供一个实例的话 那就十分感谢了!~


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

月亮是我掰弯的 2021-11-30 03:43:53

threading + signal

笑红尘 2021-11-30 03:42:09

UI是在主线程里面实现,worker线程与主线程分离就可以

甜柠檬 2021-11-30 03:34:41

引用来自“Feng_Yu”的评论

GUI编程都会遇到的问题——多线程操作。因为你将逻辑处理和UI放在了一个线程中,导致UI刷新遇到了阻塞,所以会看到GUI卡死,等你的逻辑代码执行完毕之后才会恢复响应。

解决方案就是把你的逻辑代码单独开一个线程去执行,让窗体线程不要被阻塞

情栀口红 2021-11-30 03:24:29

窗口应用程序都是单线程时间机制的,所以不能在其中编写阻塞逻辑,否则会导致界面失去相应。

在IO操作频繁的地方,开启新的线程处理逻辑即可。

滥情空心 2021-11-30 02:15:23

多进程,功能归功能,界面归界面,用用管道什么的通信

像你 2021-11-30 00:31:21

必须要多线程实现,还是多搜资料吧

夜血缘 2021-11-29 04:40:51

GUI编程都会遇到的问题——多线程操作。因为你将逻辑处理和UI放在了一个线程中,导致UI刷新遇到了阻塞,所以会看到GUI卡死,等你的逻辑代码执行完毕之后才会恢复响应。

解决方案就是把你的逻辑代码单独开一个线程去执行,让窗体线程不要被阻塞

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文