Форум сайта python.su
Добрый день господа,
возникла проблема с уничтожением потока. Дело в том, что в моём случае, этот поток работает постоянно. При закрытии приложения, запускается и деструктор этого потока, но из-за того что метод run() ещё выполняется, вылетает ошибка:
QThread: Destroyed while thread is still running
Полагаю что тут, перед уничтожением потока, необходимо в выполнить terminate(), но кокой метод класса QThread переопределить, что бы добавить туда эту строчку не сообразить не могу.
Отредактировано Corban_Dallas (Июнь 10, 2014 16:04:09)
Офлайн
> но кокой метод класса QThread переопределить, что бы добавить туда эту строчку не сообразить не могу.
Не надо его переопределять, его надо вызвать.
Офлайн
Rodegastда, вызвать перед уничтожением потока, но как это сделать? Пробовал вызывать при срабатывании события closeEvent,
Не надо его переопределять, его надо вызвать.
class MyThread(QThread): ... def closeEvent(self, event): self.terminate() super(MyThread, self).closeEvent(event) ...
Отредактировано Corban_Dallas (Июнь 11, 2014 17:10:40)
Офлайн
Как то так:
class potok(QtCore.QThread): def __init__(self, parent = None): QtCore.QThread.__init__(self, parent) # ЛЯЛЯЛЯ def run(self): # ЛЯЛЯЛЯ class okno(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.potok = potok(self) self.potok.start() # ЛЯЛЯЛЯ def closeEvent(self, event): self.potok.terminate() # ЛЯЛЯЛЯ
Офлайн
Rodegast, способ конечно рабочий, благодарю. Но хочется найти способ как это реализовать внутри класса MyThread.
Отредактировано Corban_Dallas (Июнь 12, 2014 09:48:55)
Офлайн