Для работы с потоками в PyQt5 можно использовать следующие подходы:
- Создать новый класс, наследуемый от QThread, и переопределить метод запуска. evileg.com Этот метод рекомендуется использовать, если нужно переопределить класс потока, чтобы создать специальный функционал. evileg.com
- Создать новый класс, наследуемый от QObject, написать метод run, который будет выполнять некоторый код, и передать экземпляр этого класса в другой поток с помощью метода moveToThread. evileg.com
Алгоритм действий: evileg.com
- Написать класс, который наследуется от QObject и имеет метод run для выполнения кода в другом потоке. evileg.com
- В конструкторе окна создать объект потока. evileg.com
- В конструкторе окна создать объект, который будет передан другому потоку. evileg.com
- Перенести объект в другой поток. evileg.com
- Соединить сигналы и слоты. evileg.com
- Запустить нить. evileg.com
Также для простых случаев можно использовать модуль simple_thread. habr.com С его помощью можно заставить любой метод класса выполняться в отдельном потоке, при этом изнутри метода можно обращаться (хотя и ограниченно) к атрибутам и методам класса. habr.com