如何解决根据点击的按钮填充标签 (OneLineListItem)
请原谅这个简单的问题。我有这个返回 NoneType
值的代码
(
lookas = self.root.ids.Books.add_widget(OneLineListItem(text=str(Bookfolders),on_release=self.add_tab,pos_hint={"center_x": 1,"center_y": 1},))
).
我需要根据点击的 button (OneLineListItem)
动态填充创建的选项卡(按钮已经使用 for loop
动态创建)请参阅下面的代码。我遇到的问题是使用获取单击项目的名称来填充选项卡。我似乎无法找到一种方法来获取创建的标签的名称
我使用了文档 (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),))
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:
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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。