@stead

Как создать дополнительный поток в PyQt5?

У меня есть 2 скрипта:
ui.py - в котором есть ui моей программы(скомпилировал с ui.ui )
и главный скрипт - program.py - в котором логика программы, там основной код и изменение ui.
В скрипте program.py есть функция - send_message() которая отправляла сообщение на почту используя smtp
Я вызываю send_message при нажатии на кнопку :
ui.start_button.clicked.connect(send_message)

И все работало нормально, сообщения отправлялись но ui(инерфейс) зависал. Я погуглил и понял что нужно делать это все не с одного потока, ну я и создал функцию которая срабатывала при нажатии на кнопку.
import threading
def new_thread():
    thread = threading(target=send_message)
    thread.start()


И опять же нормально работал даже интерфейс, но в консоли была ошибка которая не заканчивала программу.
Сама ошибка: QObject::setParent: Cannot set parent, new parent is in a different thread
И когда метод send_message() заканчивался, программа давала ошибку, ее прикреплю ниже.
5fb24de2f36e8914802263.png
Как мне найти выход с данной ситуации, был бы рад вашему ответу
  • Вопрос задан
  • 352 просмотра
Пригласить эксперта
Ответы на вопрос 1
@bbkmzzzz
Использовать потоки Qt. QThread или QThreadPool вместе с QRunnable
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы