如何使用python kivymd中的方法在构建器中添加TwoLineIconListItem?

2024-06-26 00:14:00 发布

您现在位置:Python中文网/ 问答频道 /正文


我想用python中的kivy、kivymd制作一个android应用程序。在里面
我想添加一个音乐播放器,它会自动找到
所有音乐文件,然后它会将所有这些文件添加为
OneLineIconListItem,当我们单击它时,音乐将被播放
根据OneLineIconListItem文本的标题,我的意思是
作为一个普通的离线android音乐播放器,它会显示所有文件(音乐名称)以及
单击它将播放歌曲“我的代码是-”:

   from kivy.lang import Builder
import os
from kivymd.app import MDApp

helper_string = """
Screen:
    name: "Music_Player"
    BoxLayout:
        orientation: "vertical"
        MDToolbar:
        title: "Toolbar"
        elevation: 10

        MDLabel:
        text: "Music_Player" 
"""


class MusicApp(MDApp):
    def build(self):
        screen = Builder.load_string(helper_string)
        return screen

    def getting_all_music_files(self):
        for root, dirs, files in os.walk('C:/'):
            for file in files:
                if file.endswith('.mp3'):
                    required_file = file
                    the_location = os.path.abspath(required_file)


如果要获取文件位置,只需打印_位置并设置目录(在我的示例中为C):/
现在,我想添加一个包含所有位置的for循环,然后将其添加为屏幕中的列表: 盒子布局:
但我不知道如何使用for循环将位置OneLineIconListItem添加到我的应用程序中,当我们单击它时,它将播放歌曲。。
我是编程新手,请帮帮我


Tags: 文件import应用程序forstring音乐osfiles
1条回答
网友
1楼 · 发布于 2024-06-26 00:14:00
from kivy.lang import Builder

from kivymd.app import MDApp
from kivymd.uix.list import OneLineListItem

KV = '''
ScrollView:

    MDList:
        id: container
'''


class Test(MDApp):
    def build(self):
        return Builder.load_string(KV)

    def on_start(self):
        for i in range(20):
            self.root.ids.container.add_widget(
                OneLineListItem(text=f"Single-line item {i}")
            )

Test().run()

相关问题 更多 >