Я создал следующий класс игрушек с помощью этого ответа :
class Worker(QtCore.QThread):
def work(self):
print("message")
def __init__(self):
super(Worker, self).__init__()
self.timer = QtCore.QTimer()
self.timer.moveToThread(self)
self.timer.timeout.connect(self.work)
def run(self):
self.timer.start(1000)
loop = QtCore.QEventLoop()
loop.exec_()
Как я могу запустить таймер из нового потока, когда я использую QThreadPool
?
Мне нужно постоянно обновлять GUI через равные промежутки времени, но если я добавлю QTimer
в основной поток, все приложение почувствует себя действительно вялым sh. Насколько я понимаю, включение этого в отдельный поток через QThreadPool
может быть более эффективным решением, поскольку новый поток может быть автоматически удален автоматически, как только это будет сделано.
Однако всякий раз, когда я меняю QtCore.QThread
на QtCore.QRunnable
в указанном выше классе, и я пытаюсь запустить поток, используя приведенный ниже код, и получаю сообщение об ошибке:
self.threadpool = QtCore.QThreadPool()
worker = Worker()
self.threadpool.start(worker)