如何告诉我的主GUI在工作线程上等待?

时间:2012-07-27 21:06:23

标签: python pyqt4 qthread python-multithreading

我已成功将PyQT4 GUI中的昂贵例程外包给工作人员QThread,以防止GUI无响应。但是,我希望GUI等待工作线程完成处理以继续执行自己的代码。

我立即想到的解决方案是让线程在完成时发出信号(据我所知,QThreads已经这样做了),然后在执行其余代码之前在主窗口中查找此信号。这是被黑的吗?

我知道QThread提供了这里描述的wait()函数,但我的用法并不清楚。我想我想在主线程上调用它,但我不确定如何在我的应用程序中调用它??

2 个答案:

答案 0 :(得分:1)

这是一个非常糟糕的计划。拆分'在线程操作之前'和'在线程操作之后'。 '后线程操作'应该是线程可以发出信号的QueuedConnection触发的插槽。

不要在GUI事件处理程序中等待!

答案 1 :(得分:0)

如果GUI线程在工作线程对象上调用wait()函数,则在工作线程从其主函数返回之前,它不会从中返回。这不是你想要做的。

您使用信号和插槽描述的解决方案对我来说似乎很有意义。或者你可以使用布尔值。