【问题标题】:Kivy: ID error on dinamic TabbedPanelKivy:动态 TabbedPanel 上的 ID 错误
【发布时间】:2016-06-19 12:41:31
【问题描述】:

我想通过字符串数组在 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。

怎么了?

谢谢,胆子

【问题讨论】:

    标签: python kivy kivy-language


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      相关资源
      最近更新 更多