Как сделать простой эквалайзер в tkinter?

Делаю mp3 плеер на tkinter.

Как сделать простой эквалайзер?

Какие виджеты нужно использовать?


Ответы (1 шт):

Автор решения: S. Nick

Как вариант, простой эквалайзер может выглядеть примерно так:

from tkinter import Button, Tk, ttk, Frame, PhotoImage
from random import choice


_list = []                     
for i in range(50, 200, 10):
    _list.append(i)

def start_reproduction():
    bar1['value'] = choice(_list)
    bar2['value'] = choice(_list)
    bar3['value'] = choice(_list)
    bar4['value'] = choice(_list)
    bar5['value'] = choice(_list)
    bar6['value'] = choice(_list)
    bar7['value'] = choice(_list)
    bar8['value'] = choice(_list)
    bar9['value'] = choice(_list)
    bar10['value'] = choice(_list)
    bar11['value'] = choice(_list)
    bar12['value'] = choice(_list)
    bar13['value'] = choice(_list)
    bar14['value'] = choice(_list)
    bar15['value'] = choice(_list)
    bar16['value'] = choice(_list)
    bar17['value'] = choice(_list)
    bar18['value'] = choice(_list)
    bar19['value'] = choice(_list)
    bar20['value'] = choice(_list)
    
    root.after(100 , start_reproduction)

def start():
    start_reproduction()


root = Tk()
root.title('Музыкальный проигрыватель')
root.config(bg='black')
root.resizable(0, 0)

style = ttk.Style()
style.theme_use('clam')
style.configure(
    "Vertical.TProgressbar", 
    foreground='green2', 
    background='green2',
    troughcolor='black',
    bordercolor='black',
    lightcolor='green2', 
    darkcolor='green2'
)

frame1 = Frame(root, bg='black', width=600, height=350)
frame1.grid(column=0,row=0, sticky='nsew')
frame2 = Frame(root, bg='black', width=600, height=50)
frame2.grid(column=0,row=1, sticky='nsew')

bar1 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar") 
bar1.grid(column=0, row=0, padx=1)
bar2 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar")
bar2.grid(column=1, row=0, padx=1)
bar3 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar")
bar3.grid(column=2, row=0, padx=1)
bar4 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar")
bar4.grid(column=3, row=0, padx=1)
bar5 = ttk.Progressbar(frame1, orient='vertical', length=300,
    maximum=300, style="Vertical.TProgressbar")
bar5.grid(column=4, row=0, padx=1)
bar6 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar")
bar6.grid(column=5, row=0, padx=1)
bar7 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar") #,takefocus=True
bar7.grid(column=6, row=0, padx=1)
bar8 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar")
bar8.grid(column=7, row=0, padx=1)
bar9 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar")
bar9.grid(column=8, row=0, padx=1)
bar10 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar")
bar10.grid(column=9, row=0, padx=1)
bar11 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar")
bar11.grid(column=10, row=0, padx=1)
bar12 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar")
bar12.grid(column=11, row=0, padx=1)
bar13 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar")
bar13.grid(column=12, row=0, padx=1)
bar14 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar") 
bar14.grid(column=13, row=0, padx=1)
bar15 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar") 
bar15.grid(column=14, row=0, padx=1)
bar16 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar") 
bar16.grid(column=15, row=0, padx=1)
bar17 = ttk.Progressbar(frame1, orient='vertical', length=300,  
    maximum=300, style="Vertical.TProgressbar") 
bar17.grid(column=16, row=0, padx=1)
bar18 = ttk.Progressbar(frame1, orient='vertical', length=300,
    maximum=300, style="Vertical.TProgressbar") 
bar18.grid(column=17, row=0, padx=1)
bar19 = ttk.Progressbar(frame1, orient='vertical', length=300,
    maximum=300, style="Vertical.TProgressbar") 
bar19.grid(column=18, row=0, padx=1)
bar20 = ttk.Progressbar(frame1, orient='vertical', length=300,
    maximum=300, style="Vertical.TProgressbar") 
bar20.grid(column=19, row=0, padx=1)

image  = PhotoImage(file='music1.png')
button = Button(frame2, image=image, bg='green2', command=start)
button.grid(column=1, row=2, pady=10)

root.mainloop()

введите сюда описание изображения


music1.png

введите сюда описание изображения

→ Ссылка