def initUI(self): self.MPDInitialize() self.parent.title("RaspiPlayer") self.style = Style() self.style.theme_use("default") self.pack(fill=BOTH, expand=1) #self.columnconfigure(1, weight=1) #self.columnconfigure(3, pad=7) #self.rowconfigure(3, weight=1) #self.rowconfigure(5, pad=7) #self.CurrentSongInfo() self.poll() titleframe = LabelFrame(self, width=200, height=70) titleframe.grid(row=0, column=0, columnspan=2) titleframe.grid_propagate(0) titlelbl = Label(titleframe, text="RaspPi Player", font=('Garamond', (20), 'bold')) titlelbl.grid(row=0, column=0) PreviousButton = Button(self, text="Previous", command=self.PreviousClick) PreviousButton.grid(row=2, column=0) PlayButton = Button(self, text="Play", command=self.PlayClick) PlayButton.grid(row=2, column=1, padx=4) StopButton = Button(self, text="Stop", command=self.StopClick) StopButton.grid(row=2, column=2) PauseButton = Button(self, text="Pause", command=self.PauseClick) PauseButton.grid(row=2, column=3, padx=4) NextButton = Button(self, text="Next", command=self.NextClick) NextButton.grid(row=2, column=4) UploadButton = Button(self, text="Upload", command=self.UploadClick) UploadButton.grid(row=2, column=5, padx=4) VolumeBar = Scale(self, from_=0, to=100, orient="horizontal", label="Volume", command=self.VolumeBar) VolumeBar.grid(row=2, column=6, padx=5) VolumeBar.set(50)
def createSettings(self,frame,d): #name frame row = 0 col = 0 lblFrame = Frame(frame) lblFrame.grid(row=row,column=col,columnspan=5,sticky=W+E,pady=0,padx=5) frame.columnconfigure(col, weight=1) frame.rowconfigure(row, weight=0) row = 0 col = 0 Label(lblFrame, text="Script Name").grid(row=row,column=col,sticky=W) lblFrame.columnconfigure(col, weight=0) lblFrame.rowconfigure(row, weight=0) row = 0 col = 1 entryMain = Entry(lblFrame) entryMain.grid(row=row,column=col,sticky=W+E,columnspan=5) self.entryName = entryMain lblFrame.columnconfigure(col, weight=1) lblFrame.rowconfigure(row, weight=0) #python plugin script file row = 1 col = 0 mainGroup = LabelFrame(frame,text="Python Script File", padding="5 5 5 5") mainGroup.grid(row=row,column=col,columnspan=5,sticky=W+E+N,pady=5,padx=5) row = 0 col = 0 mainGroup.columnconfigure(col, weight=1) mainGroup.rowconfigure(row, weight=0) entryMain = Entry(mainGroup) entryMain.grid(row=row,column=col,columnspan=4,sticky=W+E) entryMain.bind("<Return>",self.entryFileEvent) self.entryFile = entryMain row = 0 col = 4 btnMainBrowse = Button(mainGroup,text="Browse") btnMainBrowse.grid(row=row,column=col,columnspan=1,sticky=W+E,padx=5,pady=2.5) self.btnBrowse = btnMainBrowse row = 1 col = 0 Label(mainGroup, text="Plugin Class").grid(row=row,column=col,sticky=E) self.cbPluginClass = comboBox([],mainGroup,col+1,row) mainGroup.columnconfigure(col, weight=0) row = 2 col = 0 Label(mainGroup, text="GUI Class").grid(row=row,column=col,sticky=E) self.cbGuiClass = comboBox([],mainGroup,col+1,row) col = 1 mainGroup.columnconfigure(1, weight=1) mainGroup.columnconfigure(2, weight=1) mainGroup.columnconfigure(3, weight=1) row=1 col=4 button = Button(mainGroup,text="Edit Script File") button.grid(row=row,column=col,sticky=W+E,padx=5,pady=2.5) self.btnEditScript = button row = 2 col = 4 button = Button(mainGroup,text="Open Contaning Folder") button.grid(row=row,column=col,sticky=W+E,padx=5,pady=2.5) self.btnOpenFolder = button
def initUI(self): self.width = 700 self.height = 350 self.left = 0 self.right = 0 self.parent = Tk() self.parent.attributes("-topmost", 1) self.getHWNDS() r = self.winPos(self.obshwnd) self.centerOverOBS(r) self.parent.geometry("%sx%s+%s+%s" % (self.width,self.height,int(self.left),int(self.top))) self.parent.focus() self.parent.wm_title("Python Script Manager") #title label frame row = 0 col = 0 self.parent.columnconfigure(col,weight=1) self.parent.rowconfigure(row,weight=0) titleFrame = Frame(self.parent) titleFrame.grid(row=row,column=col,sticky=W+E,pady=5,padx=10) row = 0 col = 0 labelfont = ('bold', 15) Label(titleFrame, text="Python Script Manager",font=labelfont).grid(row=row,column=col,sticky=W) titleFrame.columnconfigure(row,weight=1) titleFrame.rowconfigure(col,weight=0) #sidebyside frame row = 1 col = 0 self.parent.rowconfigure(row,weight=1) self.parent.columnconfigure(col,weight=1) sidebyside = Frame(self.parent) sidebyside.grid(row=row,column=col,sticky=W+E+N+S,pady=0,padx=5) #listbox frame row = 0 col = 0 sidebyside.rowconfigure(row,weight=1) sidebyside.columnconfigure(col,weight=1) leftFrame = Frame(sidebyside) leftFrame.grid(row=row,column=col,sticky=W+E+N+S,pady=5,padx=5) #listbox row = 0 col = 0 self.listbox = Listbox(leftFrame) self.listbox.grid(row=row,column=col,columnspan=5,sticky=W+E+N+S) listboxReload(self.listbox,getScriptNames(self.scriptDict)) self.listbox.bind('<<ListboxSelect>>',self.listboxSelectionEevent) leftFrame.columnconfigure(col,weight=1) leftFrame.rowconfigure(row,weight=1) row=1 col=0 buttonFrame = Frame(leftFrame) buttonFrame.grid(row=row,column=col,sticky=W,pady=0,padx=0) row=0 col=0 #btnAdd button = Button(buttonFrame,text="Add") button.grid(row=row,column=col,sticky=E) self.btnAdd = button self.btnAdd.config(command=self.btnAddEvent) #btnRemove button = Button(buttonFrame,text="Remove") button.grid(row=row,column=col+1,sticky=W) self.btnRemove = button self.btnRemove.config(command=self.btnRemoveEvent) #settings frame row = 0 col = 1 sidebyside.rowconfigure(row,weight=1) sidebyside.columnconfigure(col,weight=10) rightFrame = Frame(sidebyside) rightFrame.grid(row=row,column=col,sticky=W+E+N+S,pady=5,padx=5) row = 0 col = 0 rightFrame.columnconfigure(col,weight=1) rightFrame.rowconfigure(row,weight=1) self.frmSettings = LabelFrame(rightFrame,text="Settings", padding="5 5 5 5") self.frmSettings.grid(row=row,column=col,sticky=W+E+N+S,pady=0,padx=0) self.frmSettings.columnconfigure(col,weight=1) self.frmSettings.rowconfigure(row,weight=1) d = createScriptDict() createSettings(self,self.frmSettings,d) row=1 col=0 buttonFrame = Frame(rightFrame) buttonFrame.grid(row=row,column=col,sticky=W,pady=0,padx=0) row = 0 col = 0 button = Button(buttonFrame,text="Save") button.grid(row=row,column=col) self.btnSave = button self.btnSave.config(command=self.btnSaveEvent) #ok cancel buttons row = 2 col = 0 self.parent.columnconfigure(col,weight=1) self.parent.rowconfigure(row,weight=0) bottomframe = Frame(self.parent) bottomframe.grid(row=row,column=col,sticky=W+E,pady=5,padx=10) row = 0 col = 0 bottomframe.columnconfigure(col,weight=1) bottomframe.rowconfigure(row,weight=0) logFrame = Frame(bottomframe) logFrame.grid(row=row,column=col,sticky=W,pady=0,padx=0) logFrame.rowconfigure(row,weight=0) row=0 col=0 #btnOpenLogs button = Button(logFrame,text="Open Logs",command=self.btnOpenLogsEvent) button.grid(row=row,column=col,sticky=E,padx=0,pady=0) self.btnOpenLogs = button row = 0 col = 1 bottomframe.columnconfigure(col,weight=1) bottomframe.rowconfigure(row,weight=0) ccFrame = Frame(bottomframe) ccFrame.grid(row=row,column=col,sticky=E,pady=0,padx=5) ccFrame.rowconfigure(row,weight=0) row=0 col=0 button = Button(ccFrame,text="Create",command=self.btnCreateEvent) button.grid(row=row,column=col,sticky=E,padx=10,pady=0) self.btnCreate = button button = Button(ccFrame,text="Cancel",command=self.btnCancelEvent) button.grid(row=row,column=col+1,sticky=W,padx=0,pady=0) self.btnCancel = button self.clearSettings() self.parent.after(1,self.lockWindow) self.parent.mainloop() self.unlockWindow()
def CurrentSongInfo(self): def OnPlayListClick(event): newsongtitle = PlayList.get(PlayList.curselection()) for i in range(0, int(length)): try: if (songlist[i]['title'] == newsongtitle): newsongindex = i break except KeyError: if (songlist[i]['artist'] == newsongtitle): newsongindex = i break rpi.playid(songlist[newsongindex]['id']) rpi.update() def ftime(time): time = int(time) return str(int(time / 60)) + ':' + '%.2d' % int(time % 60) self.currentsong = StringVar(self) rpi.update() cs = rpi.currentsong() ss = rpi.status() try: artist = cs['artist'] except KeyError: artist = '**' try: album = cs['album'] except KeyError: album = '**' try: title = cs['title'] except KeyError: title = '**' #track = cs['track'] try: num = str(int(ss['song']) + 1) except KeyError: num = '' length = ss['playlistlength'] try: cur_time = ftime(ss['time'].split(':')[0]) except KeyError: cur_time = "0:00" # total time try: total_time = ftime(cs['time']) except KeyError: total_time = "0:00" self.currentsong.set(artist + ' - ' + title + '\n' + album + '\n' + num + '/' + length + '\n\n' + cur_time + '/' + total_time) lblframe = LabelFrame(self, text="Now Playing", width=600, height=100) lblframe.grid(row=1, column=0, columnspan=7, pady=40) #lblframe.grid(row=0, column=1) lblframe.grid_propagate(0) lbl = Label(lblframe, textvariable=self.currentsong, font=('Tahoma', (9))) lbl.grid(row=1, column=0) lbl.grid_propagate(0) PlayList = Listbox(self, width=80) PlayList.grid(row=3, column=1, columnspan=5, padx=20) songlist = rpi.playlistid() for i in range(0, int(length)): try: PlayList.insert(i, songlist[i]['title']) except KeyError: PlayList.insert(i, songlist[i]['artist']) if (len(cs) != 0): if (cs['id'] == songlist[i]['id']): PlayList.itemconfig(i, background='blue', foreground='white') PlayList.bind('<<ListboxSelect>>', OnPlayListClick)