Я новичок в PySide2 и PyQtGraph, и мне бы хотелось, чтобы двое спросили о паре вещей для проекта, над которым я работаю.
Я хочу создать гибкий интерфейс для отображения данных, поступающих изнапример, поток UDP.
Идея состоит в том, чтобы иметь меню, которое позволяет вам добавлять графики. Когда вы нажимаете кнопку добавления графика, он позволяет пользователю выбирать, какой из потоков данных (из 10 возможных, которые могут быть получены в потоке) пользователь хочет видеть на графике, как только пользователь выбрал, какие потоки данныххочет построить график, он нажимает «ОК», и открывается окно с желаемым графиком, и начинается построение выбранных потоков. До сих пор у меня здесь нет проблем. Это хорошо работает.
Проблема возникает, когда я пытаюсь добавить второе окно с другим графиком, который может отображать одни и те же потоки или другой набор (всегда ограниченный 10 исходными потоками), чтобы вы могли иметь потоки 1 и 2на первом графике и потоки 2, 4 и 9 на другом. Конечно, одна из трасс на обоих графиках будет одинаковой (2). Когда я добавляю второй график, графический интерфейс начинает становиться вялым, и как только я добавляю третий, он становится очень медленным.
Дело в том, что ПК даже близко не достигает 50% нагрузки, поэтому я почти уверен, что неправильно делаю это с pyqtgraph.
Сейчас я имитируюпоток данных с классом симулятора, который генерирует данные в своем собственном потоке. (около 200 Гц)
Данные передаются «диспетчеру графиков», а этот просто копирует поступающие данные в буфер. Затем внутри этого же класса у меня есть таймер, который берет все данные буфера с частотой 25 Гц и отправляет их на каждую трассировку графического окна для обновления значений на частоте 25 Гц.
Я не знаю, верно ли этоспособ сделать это.
Должен ли я создать другой поток для "менеджера графиков" или QTimer должен быть в порядке?
Чего мне не хватает? Кто-нибудь знает, как это на самом деле должно быть сделано, чтобы работать гладко? Моя идея состоит в том, чтобы, по крайней мере, иметь возможность 5 графиков в 5 разных окнах для построения одного или более из 10 потоков.
Как вы думаете, в этом случае pyqt сможет отображать данные, которые поступают с частотой 1000 Гц для 10потоки? Конечно, он будет обновляться с частотой от 10 Гц до 30 Гц, а не с фактической частотой, с которой поступают данные.
Любое предложение будет высоко оценено.
Спасибо.