Уже есть встроенный сигнал, называемый законченным, поэтому вы можете подключить его к вашему методу процесса:
class NewThread(QtCore.QThread):
def run(self):
pass
class MainWidget(QtWidgets.QWidget):
def after_thread_done(self):
pass
def __init__(self):
self.thread = NewThread()
self.thread.finished.connect(self.after_thread_done)
Если вы хотите излучать сигнал вручную, вы можете определить новый сигнал:
class NewThread(QtCore.QThread):
new_signal = QtCore.pyqtSignal()
def run(self):
...
self.new_signal.emit()
...
Затем подключите его к вашему методу процесса с помощью тех же кодов.
Если вы хотите определить сигналы в MainWidget, вы можете передать main_widget как родительский поток.
class NewThread(QtCore.QThread):
def run(self):
...
self.parent().signal.emit()
...
class MainWidget(QtWidgets.QWidget):
new_signal = QtCore.pyqtSignal()
def after_thread_done(self):
print("done")
def __init__(self):
self.new_signal.connect(self.after_thread_done)
self.thread = NewThread(self)
self.thread.start()