Corban_Dallas
Июнь 10, 2014 15:59:59
Добрый день господа,
возникла проблема с уничтожением потока. Дело в том, что в моём случае, этот поток работает постоянно. При закрытии приложения, запускается и деструктор этого потока, но из-за того что метод run() ещё выполняется, вылетает ошибка:
QThread: Destroyed while thread is still running
Полагаю что тут, перед уничтожением потока, необходимо в выполнить terminate(), но кокой метод класса QThread переопределить, что бы добавить туда эту строчку не сообразить не могу.
Rodegast
Июнь 10, 2014 21:59:20
> но кокой метод класса QThread переопределить, что бы добавить туда эту строчку не сообразить не могу.
Не надо его переопределять, его надо вызвать.
Corban_Dallas
Июнь 11, 2014 17:09:07
Rodegast
Не надо его переопределять, его надо вызвать.
да, вызвать перед уничтожением потока, но как это сделать? Пробовал вызывать при срабатывании события closeEvent,
class MyThread(QThread):
...
def closeEvent(self, event):
self.terminate()
super(MyThread, self).closeEvent(event)
...
но как выяснилось при закрытии приложения, closeEvent не срабатывает, и соответственно self.terminate() не вызывается.
Corban_Dallas
Июнь 12, 2014 09:47:57
Rodegast, способ конечно рабочий, благодарю. Но хочется найти способ как это реализовать внутри класса MyThread.