def populate_dropdown(self): self.ids['dropdownbtn'].bind(on_release=self.ids['dropdown'].open) self.ids['dropdown'].bind(on_select=lambda instance, x: setattr(self.ids['dropdownbtn'], 'text', x)) for i in modules.all_modules: v = modules.all_modules[i] if v['Size'] == self.room['size'] and v['Power'] <= self.room['power']: btn = Button(text=v['Name'], font_size='12dp', size_hint_y=None, height='50dp') btn.entry = i btn.bind(on_release = lambda btn: self.select(btn.entry))#self.ids['dropdown'].select(btn.text)) self.ids['dropdown'].add_widget(btn)