Python 3.x 根据单击的按钮填充选项卡(OneLineListItem)

Python 3.x 根据单击的按钮填充选项卡(OneLineListItem),python-3.x,tabs,kivy,nonetype,kivymd,Python 3.x,Tabs,Kivy,Nonetype,Kivymd,请原谅这个简单的问题。我有一个返回NoneType值的代码 ( lookas=self.root.ids.Books.add_小部件(OneLineListItem(text=str(Bookfolders),在_release=self.add_选项卡上,pos_提示={“center_x”:1,“center_y”:1},)) 我需要根据单击的按钮(OneLineListItem)动态填充已创建的选项卡(按钮已使用for循环动态创建),请参见下面的代码。我遇到的问题是使用获取单击项的名称来填

请原谅这个简单的问题。我有一个返回
NoneType
值的代码

(
lookas=self.root.ids.Books.add_小部件(OneLineListItem(text=str(Bookfolders),在_release=self.add_选项卡上,pos_提示={“center_x”:1,“center_y”:1},)

我需要根据单击的
按钮(OneLineListItem)
动态填充已创建的选项卡(按钮已使用
for循环动态创建),请参见下面的代码。我遇到的问题是使用获取单击项的名称来填充选项卡。我似乎找不到一种方法来获取创建的选项卡的名称

我使用了文档(Tabs)网站上的示例,并将其保留在我的应用程序上,以便调试。需要帮助

蟒蛇

from kivymd.app import MDApp
from kivy.uix.scrollview import ScrollView
from kivymd.uix.tab import MDTabsBase

from kivymd.uix.list import OneLineListItem

from kivymd.uix.button import MDRectangleFlatIconButton, MDFloatingActionButton
from pathlib import Path, PurePath
import pygame

pygame.mixer.init()

# Music Path
storageLocation = Path.cwd()
if Path('Books').is_dir():
    storageLocation = Path.cwd() / 'Books'
    # Check if file is in SD card
# elif Path.is_mount():
else:
    storageLocation = Path.cwd() / 'Books'
    storageLocation.mkdir()


class Tab(ScrollView, MDTabsBase):
    """Class implementing content for a tab."""


class Main(MDApp):
    index = 0

    def build(self):
        return

    def on_start(self):
        # self.add_tab()
        songs = self.load_songs(storageLocation)

    # pygame.mixer.music.load(songs[0])

    def get_tab_list(self):
        """Prints a list of tab objects."""
        print(self.root.ids.tabs.get_tab_list())

    def add_tab(self, *args):
        boy= self.root.ids.tabs.add_widget(Tab(title="This"))
        print(type(boy))

    def remove_tab(self):
        if self.index > 1:
            self.index -= 1
        self.root.ids.tabs.remove_widget(
            self.root.ids.tabs.get_tab_list()[-1]
        )

    def load_songs(self, storageLocation):
        songs = []
        dictionary = {}

        if Path('Books').is_dir():
            for filename in storageLocation.glob('**/*.wav'):
                songs.append(filename)
                # Create dictionary for each subfolder(Chapter)
            booksdir = [f for f in storageLocation.iterdir() if f.is_dir()]
            for Bookfolders in booksdir:
                # if Bookfolders not in dictionary:
                #    dictionary[Bookfolders] = []
                #   dictionary[Bookfolders].append('yahoooooo')

                lookas = self.root.ids.Books.add_widget(OneLineListItem(text=str(Bookfolders), on_release=self.add_tab,
                                                                        pos_hint={"center_x": 1,
                                                                                  "center_y": 1}, ))
        return lookas

    @staticmethod
    def play_song(*args):
        pygame.mixer.music.play()
        print(OneLineListItem.text)

    @staticmethod
    def stop_song(*args):
        pygame.mixer.music.stop()
        print("song stopped")


Main().run()
基维

MDNavigationLayout:
屏幕管理器:
屏幕:
#屏幕:
#第二章屏幕:
MDBoxLayout:
方向:“垂直”
MDToolbar:
标题:“章节”
字体样式:“标题”
立面图:8
左侧操作项:[[“菜单”,lambda x:nav_抽屉。设置状态(“打开”)]]
小装置:
MDTAB:
id:选项卡
MDScreen
MDBoxLayout:
方向:“垂直”
MDList
id:书籍
#选项菜单
MDNavigationDrawer:
id:nav_抽屉
MDBoxLayout:
方向:“垂直”
填充:“8dp”
间距:“8dp”
MDList:
MDBoxLayout:
自适应高度:真
MDFlatButton:
文本:“添加选项卡”
发布时:app.add_选项卡()
MDFlatButton:
文本:“删除最后一个选项卡”
发布时:app.remove_tab()
MDFlatButton:
文本:“获取选项卡列表”
发布时:app.get\u tab\u list()
MDNavigationLayout:
    ScreenManager:
        Screen:
            #BooksScreen:
            #ChapterScreen:

            MDBoxLayout:
                orientation: "vertical"

                MDToolbar:
                    title: "Chapters"
                    font_style: "Caption"
                    elevation:8
                    left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
                    Widget:

                MDTabs:
                    id: tabs



            MDScreen
                MDBoxLayout:
                    orientation: "vertical"
                    MDList
                        id: Books

        #Options menu
    MDNavigationDrawer:
        id: nav_drawer
        MDBoxLayout:
            orientation: "vertical"
            padding: "8dp"
            spacing: "8dp"

<Tab>

    MDList:

        MDBoxLayout:
            adaptive_height: True




            MDFlatButton:
                text: "ADD TAB"
                on_release: app.add_tab()


            MDFlatButton:
                text: "REMOVE LAST TAB"
                on_release: app.remove_tab()

            MDFlatButton:
                text: "GET TAB LIST"
                on_release: app.get_tab_list()