@Batlab
PHP Senior | Python Middle | JS Junior

Как отловить сигнал finished() для отдельного потока в pyqt5?

Вообщем.
Следующий код создает обьект класса экземпляра QThread
# Создаем новый поток и прослушиваем слот
        self.myThread = jobThread(self.isJobStopped, self.spinBox.value()) # Создаем обьект класса и передаем ему нужные аргументы
        self.myThread.jobSignal.connect(self.addLog) # Прослушиваем кастомный сигнал
        self.myThread.start() # Создаем поток

Когда мне нужно, я останавливаю поток таким кодом:
self.myThread.terminate()
После того, как он был остановлен, мне нужно навешать на него свою функцию, не важно какую.
В документации написано, что обьекты QThread имеют сигнал finished(), по которым это можно отследить.
Все бы ничего, в PyQt4 это работает прекрасно по вот такому коду:
self.connect(self.myThread, SIGNAL("finished()"), self.addLog('Программа завершена'))

Но в PyQt5 изменилась система сигналов.
self.connect(self.myThread, SIGNAL("jobSignal(str)"), self.addLog)  # PyQt4
self.myThread.jobSignal.connect(self.addLog)  # PyQt5

Становится вопрос, как мне прослушать finished() сигнал?
Я пробовал вот так:
self.myThread.finished().connect(self.addLog)
Но это вызывает ошибку "Native qt signal is not callable"
Как мне с этим быть?
Срочно нужно решение, в документации его не нашлось(
  • Вопрос задан
  • 521 просмотр
Решения вопроса 1
@Batlab Автор вопроса
PHP Senior | Python Middle | JS Junior
Проблема решена.
В PyQt5 нужно вызывать не finished() а finished.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы