#coding:utf-8
from tkinter import *
importtkinter.messageboxfrom tkinter.filedialog importaskopenfilenamesimportpygamefrom playservice importService#:鼠标左击事件#:鼠标中击事件#:鼠标右击事件#:鼠标释放事件,x=[1,2,3],分别表示鼠标的左中右键操作#:双击事件
classMainWindow:defplay(self,event):#tkinter.messagebox.showinfo("messagebox","this is button 1 dialog")
#filepath = askopenfilename(filetypes=(("MP3 file","*.mp3"),))
#print(filepath)
#track = pygame.mixer.music.load(r'D:/ProgramFiles/Development/PycharmProjects/music_player/music.mp3')
#print(track,type(track))
#pygame.mixer.music.play()
num = self.tl.curselection() #获取用户所选的MP3的下标
mp3_name = self.tl.get(num) #根据下标返回mp3的名字
self.service.play_mp3(mp3_name)defdelete_mp3(self,event):
num= self.tl.curselection() #获取用户所选的MP3的下标
mp3_name = self.tl.get(num) #根据下标返回mp3的名字
self.service.delete_play_list(mp3_name)
list=self.service.find_play_list_by_user()#print(list)
self.tl.delete(0, END)for i inlist:
self.tl.insert(END, i[0])defpause_mp3(self,event):
self.service.pause_mp3()defunpause_mp3(self,event):
self.service.unpause_mp3()defstop_mp3(self,event):
self.service.stop_mp3()defsetVolume(self,event):
self.service.setVolume()#当用户在导入歌曲的按钮上点击调用的函数
defloadMp3(self,event):#tkinter.messagebox.showinfo("messagebox","this is button 4 dialog")
files = askopenfilenames(filetypes=(("Mp3 file","*.mp3*"),))
self.service.load_mp3(files)
list=self.service.find_play_list_by_user()#print(list)
self.tl.delete(0,END)for i inlist:
self.tl.insert(END,i[0])defselect_text(self, event):#tkinter.messagebox.showinfo("messagebox", "this is")
#item = self.tl.curselection()
#print(self.tl.get(item))
pass
def __init__(self):
self.service=service
self.frame=Tk()
self.frame.title("Leslie的播放器")
self.button1= Button(self.frame, text="播放")
self.button2= Button(self.frame, text="暂停")
self.button7= Button(self.frame, text="继续")
self.button3= Button(self.frame, text="停止")
self.button4= Button(self.frame, text="导入歌曲")
self.button5= Button(self.frame, text="删除歌曲")
self.button6= Button(self.frame, text="增加音量")
self.tl= Listbox(self.frame,{"selectmode":SINGLE}) #播放列表
self.button1.grid(row=0, column=0, padx=5, pady=5)
self.button2.grid(row=0, column=1, padx=5, pady=5)
self.button3.grid(row=0, column=2, padx=5, pady=5)
self.button7.grid(row=0, column=6, padx=5, pady=5)
self.button4.grid(row=0, column=3, padx=5, pady=5)
self.button5.grid(row=0, column=4, padx=5, pady=5)
self.button6.grid(row=0, column=5, padx=5, pady=5)
self.tl.grid(row=1, column=0, padx=5, pady=5, columnspan=6)#返回该登陆用户的播放列表
list =self.service.find_play_list_by_user()
self.tl.delete(0, END)for i inlist:
self.tl.insert(END, i[0])#给list_box绑定鼠标事件
self.tl.bind("",self.select_text)
self.button1.bind("", self.play)
self.button5.bind("", self.delete_mp3)
self.button2.bind("", self.pause_mp3)
self.button7.bind("", self.unpause_mp3)
self.button4.bind("", self.loadMp3)
self.button3.bind("", self.stop_mp3)
self.button6.bind("", self.setVolume)
self.frame.mainloop()if __name__=="__main__":
username= input("请输入登陆的账号:")
password= input("请输入登陆的密码:")
service=Service()ifservice.login(username,password):
pygame.mixer.init()
window= MainWindow()