Отменить фоновую задачу (завершить QThread) в PyQtPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Отменить фоновую задачу (завершить QThread) в PyQt

Сообщение Anonymous »

Этот вопрос во многом связан с этим вопросом, у которого нет решения, но это не совсем то же самое.

Я хотел бы спросить, если есть способ запустить фоновую задачу в PyQt и иметь возможность завершить ее нажатием кнопки.

Моя проблема в том, что у меня есть пользовательский интерфейс и некоторые внешние (сторонние) функции, вычисление которых требует времени. Чтобы не замораживать пользовательский интерфейс во время вычислений задачи, я запускаю их в фоновом режиме с помощью QThread и синхронизирую пользовательский интерфейс, когда они завершают использование сигналов.

Однако я хотел бы добавить возможность внешнему пользователю нажать кнопку и отменить текущую задачу (поскольку эта задача больше не нужна/нежелательна).< /p>

Что-то, что мне кажется таким же простым, как kill -9 *task* в Linux, довольно сложно/затруднительно получить в Qt.

Прямо сейчас Я использую собственные Qthreads вида:

Код: Выделить всё

mythread = Mythread()
mythread.finished.connect(mycallback)
mythread.start()
Где Mythread наследует QThread, переопределяя метод run.

В пользователе интерфейсе есть одна кнопка, которая пытается завершить этот поток, используя:

Код: Выделить всё

mythread.exit(0)
mythread.quit()
mythread.terminate()
Ни один из них не работает... Я знаю, что в документации указано, что метод завершения действительно ведет себя странно...
Итак, вопрос в том.. Я неправильно столкнулся с этой проблемой? Как убить QThread? Если это невозможно, есть ли альтернатива этому?

Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/312 ... ad-in-pyqt
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Имеет ли смысл использовать Qthread, не вызывая QThread :: start ()?
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Pyside (pyqt), как управлять пользовательским интерфейсом через qthread? каков правильный путь для моего примера [дублик
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Ожидание завершения PyQt/PySide.QtCore.QThread, прежде чем что-то делать
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Ожидание завершения PyQt/PySide.QtCore.QThread, прежде чем что-то делать
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Ожидание завершения PyQt/PySide.QtCore.QThread, прежде чем что-то делать
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»