def populateSongList(self,songs): print ("populating") self.songListGrid.clear_widgets() index = 0 lastBtn = None for song in songs: songBtn = ToggleButton(text=song.title, size_hint_y=None, height=25,group='song') songBtn.bind(on_release=self.songSelectionChanged) songBtn.item=song songBtn.index = index songBtn.previousBtn = lastBtn if lastBtn: lastBtn.nextBtn = songBtn lastBtn = songBtn index+=1 bandLbl = Label(text=song.band,size_hint_x=0.4, width=150) durationLbl = Label(text=song.duration(),size_hint_x=None, width=70) bpmRange = self.getBpmRange(song.genre) spdTxt = self.bpmToStars(song.bpm, bpmRange[0], bpmRange[1]) speedLbl = Label(text=spdTxt,size_hint_x=0.4, width=40) self.songListGrid.add_widget(songBtn) self.songListGrid.add_widget(bandLbl) self.songListGrid.add_widget(durationLbl) self.songListGrid.add_widget(speedLbl) print ("populating done")
def on_pre_enter(self, *args, **kwargs): super().on_pre_enter(*args, **kwargs) if len(self.ids.list_.children) != 0: return for item in sorted(self.items,key=lambda x: x.name): tb = ToggleButton(text = self.get_item_name(item), group = self.name+'button_group', size_hint_y=None, size_y='30') tb.item = item def enable_done(button): self.done_disabled = (button.state != 'down') self.selection = button.item print(self.selection) tb.bind(on_release=enable_done) self.ids.list_.add_widget(tb)