我如何告诉我的主界面上等待工作线程?(How do I tell my main GUI to wa

2019-10-17 02:03发布

我已经成功地外包在我PyQt4的GUI昂贵的程序来工人的QThread防止GUI从去响应。 不过,我想在GUI等到工作线程处理完毕继续执行自己的代码。

立即在我脑海中的解决方案是让线程发出信号时,完整的(据我所知,QThreads已经做到这一点),然后执行代码的其余部分之前寻求在主窗口中这个信号。 这是黑客入侵?

我知道的QThread提供这里描述的等待()函数,但用法我不清楚。 我想,我想称之为主线程,但我不知道如何调用,在我的应用程序...?

Answer 1:

这是一个非常糟糕的计划。 分手了“线程行动之前”和“之后线程行动”。 在“线程操作后”应该是由线程可以预示着QueuedConnection开了槽。

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



Answer 2:

如果GUI线程调用wait()工作线程对象的功能,它不会从它返回,直到从它的主要功能工作者线程返回。 这是不是你想要做什么。

你描述使用信号和槽的解决方案似乎让很多有意义的我。 或者你可以只使用一个布尔值。



文章来源: How do I tell my main GUI to wait on a worker thread?