1
0
Fork 0
mirror of synced 2024-06-29 11:40:37 +12:00
Rare/rare/shared/workers/worker.py

33 lines
733 B
Python
Raw Normal View History

import sys
from abc import abstractmethod
from typing import Optional
from PyQt5.QtCore import QRunnable, QObject, pyqtSlot
class Worker(QRunnable):
def __init__(self):
sys.excepthook = sys.__excepthook__
super(Worker, self).__init__()
self.setAutoDelete(True)
self.__signals: Optional[QObject] = None
@property
def signals(self) -> QObject:
if self.__signals is None:
raise NotImplementedError
return self.__signals
@signals.setter
def signals(self, obj: QObject):
self.__signals = obj
@abstractmethod
def run_real(self):
pass
@pyqtSlot()
def run(self):
self.run_real()
self.signals.deleteLater()