pyqt - pyqt4 PyQt信号和插槽,在线程间传递对象

  显示原文与译文双语对照的内容

首先,我使用了老式的信号和插槽,以及 QThreads 。

我有两个线程,一个用于 GUI,另一个用于工作。 当从worker发出信号时,GUI在它的自己的线程中处理这个问题。

作为进程的一部分,工作人员还将对象传递给 slot,因这里我使用以下内容:


self.emit(SIGNAL(my_signal(PyQT_PyObject), self.object_to_pass)



GUI必须解释这个对象;实际上它读取属性并相应地更新进度栏。 slot 被定义为:


def my_slot(self, my_state):


 self._state = my_state #so object_to_pass comes in from the worker here



我的问题如下: 对传递的对象线程安全的访问? 如果工人改变了object_to_pass的某些属性,换句话说,也会发生改变?

时间: 原作者:

对传递的对象的访问是只读的,不是隐式线程安全的。 对象通过引用通过信号传递,因此两个线程都在同一个对象上。

原作者:
...