我有一个PyQt4应用程序,它在某些时候使用tarfile模块打包一个大文件。由于tarfile模块没有实现任何回调策略,因此它会阻塞并且Qt GUI没有响应。
我希望GUI在此期间不断更新。唯一的可能是一个单独的线程。 所以,我开始了QThread。我在QThread中需要做些什么来自行更新GUI? 很快,当tar过程结束时,我希望线程完成。
谢谢! 森
答案 0 :(得分:1)
QThread与普通的Python线程非常相似,所以你可以使用普通的通信方法。但是,QThreads也有一些信号可用,所以如果你只是连接到那些信号,那么就比你已经完成了。
在你的GUI代码中执行类似的操作并且你已经完成了很多工作:
thread = Thread()
thread.finished.connect(gui.do_update_thingy)
您还可以使用terminated
和started
信号:)