pyqt4 中的线程
在我的 GUI 中我必须下载很多东西。我使用 urllib 来做到这一点。当然,问题就变成了 GUI 会冻结,直到所有内容都下载完毕。
我的代码如下所示
QtCore.QObject.connect( self.UI.commandLinkButton_2 , QtCore.SIGNAL("clicked()") , self.addStoryToHistory )
,其中上述函数具有下载代码。
其中没有什么比发送共享数据更重要的了,该过程仅涉及将数据下载到某个位置。
不冻结 GUI 的最简单方法是什么?我应该使用多处理
还是QThreads
?
任何人都可以指出我的一些链接....我不希望它变得非常复杂,所以如果有任何更简单的方法请指出....
非常感谢...
In my GUI I have to download lots of stuff in between. I use urllib to do that. the problem of course then becomes that the GUI freezes up until everything gets downloaded.
My code is something like following
QtCore.QObject.connect( self.UI.commandLinkButton_2 , QtCore.SIGNAL("clicked()") , self.addStoryToHistory )
wherein the above function has the downloading code.
There is nothing like sending of shared data among this and the process just involves downloading of the data to a location.
What is the simplest way to not freeze up my GUI ? Should i use multiprocessing
or QThreads
?
Can anybody point me to some links.... I do not wish it to be very complex so if there is any easier way do it please point it out....
Thanks a lot...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是我刚刚从几个月前我正在开发的一个项目中剥离出来的一个示例,使用 PyQt 的 http 示例作为基础。它将从 Riverbank 网站下载 SIP。
它使用来自 QtNetwork 的 QHttp 而不是 urllib 和进度bar 连接到其 dataReadProgress 信号。这应该允许您可靠地下载文件并拥有响应式 GUI。
Here's an example I've just stripped from a project I was working on a couple of months back using the http example from PyQt as a base. It'll download SIP from the Riverbank website.
It's using QHttp from QtNetwork instead of urllib and the progress bar is connected to its dataReadProgress signal. This should allow you to reliably download a file as well as having a responsive GUI.
我建议您改用 QNetworkManager 并监控下载过程。
请参阅另一个问题:
pyQT QNetworkManager 和 ProgressBar
I suggest you to use the QNetworkManager instead and monitor the download process.
See this other question:
pyQT QNetworkManager and ProgressBars