PyQt和Threads:多线程查询

时间:2012-08-10 04:22:41

标签: python multithreading pyqt methodology

情况

我正在使用python 2.7。我正在开发一个使用PyQt4的GUI的应用程序。

我在窗口小部件中有一个按钮,当您单击它时,它将请求用户指定的一系列ID。用户可以指定程序应为“作业”分配的线程数。

我的原创想法

该按钮生成一个作业线程,并将ID范围和线程数传递给它。然后,作业线程可以创建子线程并根据需要从该范围传递它们。

当获取所有ID时,作业线程可以停止其所有工作线程,然后自行停止。

我会利用信号/插槽来更新GUI元素,因为它是由作业中的工作线程提取的。

我正在使用线程,因此GUI在提取过程中仍然可以进行交互。

问题

当我试图从一个线程中生成一个线程时,发生了“可怕的PyQt多线程问题”。

QObject: Cannot create children for a parent that is in a different thread.

我的解决方法

我只是从包含按钮的小部件中生成了作业线程和工作线程,因此没有线程从线程中生成,然后将工作线程“连接”到作业线程。

la aThread = ScrapeThread(self, aJob)其中aJob是主作业线程。

这似乎有效,但感觉就像解决方法而不是正确的方法。

问题

我所做的似乎是一种解决方法,而不是PyQt中多线程的正确方法。

有什么建议吗?

0 个答案:

没有答案