我的代码:
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.recycleview import RecycleView
from kivy.lang import Builder
from get_songs import get_songs
Builder.load_string('''
<songs_rv>:
viewclass: 'Button'
RecycleBoxLayout:
default_size: dp(100), dp(40)
default_size_hint: 1, None
size_hint_x: None
size_hint_y: None
height: self.minimum_height
orientation: 'vertical'
''')
class songs_rv(RecycleView):
def __init__(self, **kwargs):
super(songs_rv, self).__init__(**kwargs)
songs = get_songs()
self.data = [{'text': song, 'bind': {'on_press': self.press_button}} for song in songs]
def press_button(self, instance):
print(instance.text)
class MusicPlayerApp(App):
def build(self):
self.layout = GridLayout(cols=3, rows=4, size_hint=(1, 1), pos_hint={'center_x':0.5, 'center_y':0.5})
# 歌曲列表
self.songs_list_viewer = songs_rv()
self.layout.add_widget(self.songs_list_viewer)
return self.layout
if __name__ == '__main__':
MusicPlayerApp().run()
运行程序后,不管怎么按按钮,都没有打印东西。
怎么解决?不要AI答案。