DevGang
Авторизоваться

PyQT EqualizerBar: Визуализируйте изменения звуковой частоты 

Этот настраиваемый PyQt5 / PySide2-совместимый виджет обеспечивает вывод визуализатора частоты для аудиоприложений. Он полностью настраивается от количества полосок, количества сегментов и цветов до анимированного затухания. Он готов к использованию в ваших приложениях Python-Qt5.

Пакет для загрузки включает демонстрационную анимацию с использованием случайных данных и некоторую настраиваемую цветовую конфигурацию, чтобы вы могли изучить, как работает виджет.

Базовая настройка

Чтобы создать объект Equalizer, укажите количество полосок и количество сегментов на полосу.

equalizer = Equalizer(5, 10)
Внешний вид виджета по умолчанию.
Внешний вид виджета по умолчанию.

Диапазон по умолчанию для каждой полосы эквалайзера составляет 0 ... 100. Это можно отрегулировать с помощью .setRange.

equalizer.setRange(0, 1000)

Анимация распада

Полоса эквалайзера включает анимацию затухания, при которой пики значений медленно исчезают с течением времени. Это создается путем постепенного вычитания заданного значения из текущего значения каждого столбца с использованием повторяющегося таймера.

Частоту таймера спада (в миллисекундах) можно настроить с помощью .setDecayFrequencyMs. Значение по умолчанию - 100 мс.

equalizer.setDecayFrequencyMs()

Передача 0 отключит механизм распада.

На каждом тике установленное значение удаляется из текущего значения каждого бара. Это настраивается с помощью .setDecay. Отрегулируйте это в зависимости от диапазона возможных значений вашего эквалайзера.

equalizer.setDecay(0, 1000)

Конфигурация стиля бара

Количество отображаемых полосок и количество сегментов в полосах / цвет этих полос определяется при запуске.

equalizer = EqualizerBar(10,  ["#2d004b", "#542788", "#8073ac", "#b2abd2", "#d8daeb", "#f7f7f7", "#fee0b6", "#fdb863", "#e08214", "#b35806", "#7f3b08"])
Тема Purple Orange с 10 полосами
Тема Purple Orange с 10 полосами

Чтобы установить цвета после запуска, либо укажите список цветов (QColor или шестнадцатеричные значения) при запуске, либо используйте метод .setColors. Передача списка цветов в этот метод изменит количество сегментов в соответствии с предоставленными цветами.

equalizer.setColors(["#810f7c", "#8856a7", "#8c96c6", "#b3cde3", "#edf8fb"])

Вы также можете использовать .setColor для установки одного цвета для всех сегментов, не изменяя количество полосок.

equalizer.setColor('red')

Интервал вокруг изображения эквалайзера настроен с .setBarPadding предоставлением целочисленного значения для добавления в пикселях.

equalizer.setBarPadding(20)

Пропорция каждого сегмента полосы, который является сплошным / пустым, настраивается с использованием значения .setBarSolidPercent с плавающей запятой между 0 ... 1.

Настройка заполнения и размера планки.
Настройка заполнения и размера планки.

Источник:

#Python #Qt #PyQt
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу