0

我想从 stringarray 在 Kivy 中动态创建 TabbedPanel:

tg_folders = [['0','Folder1'],['1','Folder2']]
tgflen=len(tg_folders)
    for i in range(0,tgflen):
        fl_id = 'fl-'+tg_folders[i][0]
        menu_screen.ids.tg_folder_list.add_widget(TabbedPanelItem(height=0, 
                                                    id = fl_id,
                                                    text = tg_folders[i][1] ))

没关系,tg_folder_list 就是我的TabbedPanel 的id。

然后我尝试向 TabbedPanelItem 添加一个新元素:

menu_screen.ids[fl_id].add_widget(Label(height=1, 
                                                text = tg_folders[i][1]
                                                ))

在运行 Python 时说:

KeyError: 'fl-0'

当我尝试时,print (menu_screen.ids)我找不到这个 id。

怎么了?

谢谢,胆

4

1 回答 1

0

ids 只能在 kv 中设置。您可以改为以另一种方式跟踪对象引用,例如将它们保存在列表中。

于 2016-06-19T14:53:03.700 回答