我想知道在一个QObject内部从常规的Python线程发出信号与在QThread中发出信号有什么后果。
请参考以下类:
请参考以下类:
class MyObject(QtCore.QObject):
def __init__(self):
super().__init__()
sig = pyqtSignal()
def start(self):
self._thread = Thread(target=self.run)
self._thread.start()
def run(self):
self.sig.emit()
# Do something
假设在GUI线程中,我有以下代码:
def __init__(self):
self.obj = MyObject()
self.obj.sig.connect(self.slot)
self.obj.start()
def slot(self):
# Do something
当信号被发射时,slot
确实会被执行。但是,我想知道slot
方法将在哪个线程中执行?如果在MyObject
中使用QThread
而不是Python线程,是否会有任何区别?
我正在使用PyQt5和Python 3。