Я хотел бы спросить, если есть способ запустить фоновую задачу в PyQt и иметь возможность завершить ее нажатием кнопки.
Моя проблема в том, что у меня есть пользовательский интерфейс и некоторые внешние (сторонние) функции, вычисление которых требует времени. Чтобы не замораживать пользовательский интерфейс во время вычислений задачи, я запускаю их в фоновом режиме с помощью QThread и синхронизирую пользовательский интерфейс, когда они завершают использование сигналов.
Однако я хотел бы добавить возможность внешнему пользователю нажать кнопку и отменить текущую задачу (поскольку эта задача больше не нужна/нежелательна).< /p>
Что-то, что мне кажется таким же простым, как kill -9 *task* в Linux, довольно сложно/затруднительно получить в Qt.
Прямо сейчас Я использую собственные Qthreads вида:
Код: Выделить всё
mythread = Mythread()
mythread.finished.connect(mycallback)
mythread.start()
В пользователе интерфейсе есть одна кнопка, которая пытается завершить этот поток, используя:
Код: Выделить всё
mythread.exit(0)
mythread.quit()
mythread.terminate()
Итак, вопрос в том.. Я неправильно столкнулся с этой проблемой? Как убить QThread? Если это невозможно, есть ли альтернатива этому?
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/312 ... ad-in-pyqt