-
Notifications
You must be signed in to change notification settings - Fork 0
/
songlist.py
52 lines (42 loc) · 1.63 KB
/
songlist.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import sys
sys.path.append('..')
import tkinter as tk
from tkinter import *
from mp3player import MP3Player
from config import COLOR_THEME, SONG_LIST_TEXT_COLOR
class SongList:
def __init__(self, mp3Player: MP3Player) -> None:
self.mp3Player = mp3Player
self.master = mp3Player.master
listboxFrame = Frame(self.master)
self.listboxFrame = listboxFrame
listbox = Listbox(
listboxFrame,
listvariable=StringVar(value=self.mp3Player.songs),
fg=COLOR_THEME["song_list"]["text_color"],
# bg=COLOR_THEME["bg_color"],
bg=COLOR_THEME["song_list"]["bg_color"],
highlightbackground=COLOR_THEME["bg_color"]
)
listbox.bind('<Double-1>', self.__clickToChangeSong)
listbox.bind('<Button-3>', self.__refresh)
self.listbox = listbox
scrollbar = Scrollbar(
listboxFrame,
orient='vertical',
command=listbox.yview
)
self.scrollbar = scrollbar
self.listbox['yscrollcommand'] = self.scrollbar.set
self.listbox.pack(fill=tk.Y, expand=True)
self.listboxFrame.pack(fill=tk.Y, side='left')
def __refresh(self, event):
self.mp3Player.songs = self.mp3Player.getMP3()
self.listbox.configure(
listvariable=StringVar(value=self.mp3Player.getMP3())
)
def __clickToChangeSong(self, event):
selectedIndex = event.widget.curselection()[0]
self.mp3Player.songIndex = selectedIndex
self.mp3Player.selectedSong = self.mp3Player.songs[self.mp3Player.songIndex]
self.mp3Player.playSong()