在PyQt4中保持活动线程

时间:2010-07-09 15:03:58

标签: python multithreading pyqt4 qthread

我有一个PyQt4应用程序,它在某些时候使用tarfile模块打包一个大文件。由于tarfile模块没有实现任何回调策略,因此它会阻塞并且Qt GUI没有响应。

我希望GUI在此期间不断更新。唯一的可能是一个单独的线程。 所以,我开始了QThread。我在QThread中需要做些什么来自行更新GUI? 很快,当tar过程结束时,我希望线程完成。

谢谢! 森

1 个答案:

答案 0 :(得分:1)

QThread与普通的Python线程非常相似,所以你可以使用普通的通信方法。但是,QThreads也有一些信号可用,所以如果你只是连接到那些信号,那么就比你已经完成了。

在你的GUI代码中执行类似的操作并且你已经完成了很多工作:

thread = Thread()
thread.finished.connect(gui.do_update_thingy)

您还可以使用terminatedstarted信号:)

相关问题