我正在使用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中多线程的正确方法。
有什么建议吗?