Задать вопрос
discipuli
@discipuli
Студент

Как правильнее писать многопоточные приложения с PyQt5?

Есть приложение.
На PyQt5.
В нём я запрашиваю данные по 10 каналам с небольшого устройства, (при чём в если просто просить их подряд в простеньком питоновском скрипте, то мы получим частоту 4 КГц), вывожу на экран в виде графиков с помощью pyqtgraph.
Но в приложении на среднестатистической офисной машинке не получается выжать больше 20 Гц из-за отрисовки графика(пока всё выполняется в одном потоке).
Я хочу хотя бы 1 КГц.
Мысль для реального ускорения только одна: делать программу многопоточной.
В отдельном потоке просим данные, а рисуем уж как придётся, благо время выполнения куска кода с запросом ограничено.
Тут возникает вопрос: какую и как использовать многопоточность: Qt-ешную или можно питоновскую?
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
discipuli
@discipuli Автор вопроса
Студент
"Реальной многопоточности в питоне судя по всему нет
так что вариант один: оптимизировать отрисовку"

В результате использовал qthread. Писал в vs code, и последний не смог ни увидеть 2 поток, ни остановится на брейкпоинте, даже не уверен что остановился 2 поток когда была нажата пауза. Я так понимаю, что vs code работает через pgb, и что бы окончательно понять, что у pyqt5 свои потоки нужно использовать gdb(да,так тоже можно)
Так или иначе проблема была решена.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ZIK1337
@ZIK1337
Если в потоке идет работа с виджетами qt - то qt-шную
Если нет, то можно питоновскую
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы