У меня есть класс, который отображает данные формы волны аудиофайлов в QWidget (см. Снимок экрана виджета ниже, тогда я все еще использовал градиент, что привело к снижению производительности).
Аудиоданные отрисовываются в paintEvent непосредственно на виджете с использованием нескольких вызовов QPainter :: drawLine
(минимальное количество вызовов QWidget :: drawLine
эквивалентно ширина виджета => минимум одна строка для каждой координаты x).
Хотя этот подход довольно хорошо работает в Windows (событие paintEvent в полноэкранном режиме занимает около 4 мсек), производительность в 4-5 раз хуже, когда программа запускается под MacOS.
Производительность рисования важна для плавной прокрутки экрана. отображаемые данные.
Итак, мой вопрос: знает ли кто-нибудь более быструю альтернативу QPainter.drawLine для рисования линий (решения, зависящие от платформы, могут подойти, если их можно использовать в paintEvent), или есть способ ускорить прокрутку, какую-то буферизацию и т. д.?