如何在Pyside,QtPy python中从主UI发送到Qthread的列表?

时间:2016-10-28 18:29:48

标签: python pyqt pyside qthread

我和Pyside(QtPy)一起写了一个应用程序。 该应用程序允许用户: 1.扫描路径 - 应用程序将扫描默认路径并将该路径中的现有文件夹显示为复选框列表。 2.用户可以选择多个文件夹,而不是在所有这些文件夹上执行进程(按钮)。

在后台: 当用户点击“进程”时,我扫描复选框列表并仅为所选文件夹创建新列表(“已选中”复选框或“用户选定文件夹”)。

这些文件夹的实际进程将在QThread类的循环中运行。

挑战在于 - 我的QThread如何使用主UI方法中的“选定文件夹列表”???? 在这一点上,我能够使它工作的唯一方法是使这个列表成为一个全局参数。主UI方法将值设置为全局列表,QThread可以读取该全局列表。

我已经阅读了有关信号和插槽的所有可能的文档,我没有问题从Qthread向主UI发送任何我想要的东西,但我找不到将数据发送到线程的合适解释。

谢谢。

1 个答案:

答案 0 :(得分:0)

实际上,我最终得到了一个非常简单的解决方案。 我在新的列表中将我的列表设置在线程对象中。

self.runningProcess = clMyThread()  #This is my thread object
self.runningProcess.ThreadList = self.MainList

self.MainList将是您在UI中输入的任何列表作为输入,而ThreadList是线程本身中的相同列表。

因此,当您在线程运行功能中对该列表执行某些操作时,您可以:

for item in self.ThreadList:
    do_something()