Я использовал следующую схему, предложенную @ Scheff
class MyQThread(QThread):
def __init__(self):
self.__terminated = None
super().__init__()
def wasTerminated(self):
if self.__terminated is None:
return True
return False
def run(self):
# Add at end of run
self.__terminated = False
И следующую в вызывающей программе:
class Worker(QObject):
def __init__(self):
super().__init__()
self.thread = MyQThread()
self.thread.finished.connect(self.finishedSlot)
def finishedSlot(self):
if self.thread.wasTerminated():
print("Thread was killed before finished")
else:
print("Thread results are ok")