python - 无法在 kivy 中访问 2 个动态设置的 id
问题描述
我在访问 Python 代码中的 id 时遇到问题。
当我执行以下操作时,一切正常。
self.widget.ids.id_1.ids.second_id.add_widget(item)
但问题是我想通过代码设置第一个 id (id_1),所以显而易见的解决方案是这样的:
first_id = f"id_{1}"
self.widget.ids[first_id].ids.second_id.add_widget(item)
但它不起作用。
我需要通过代码设置第一个 id。第二个是静态的。
你有什么建议吗?
编辑:
我通过将python代码中创建的小部件添加到字典来解决了这个问题。这样我就可以在不使用 id 的情况下访问它们。这是一个示例代码:
self.dict_pages = {}
for i in range(tab_count):
sv = ScrollView(pos_hint={'top': 1}, size_hint_y=0.9)
self.lst = MDList(size_hint_y=1)
new_tab = Tab(title=f"{i + 1}")
self.lst.clear_widgets()
self.dict_pages[f"page_{i}"] = self.lst
sv.add_widget(self.lst)
new_tab.add_widget(sv)
self.tabs.add_widget(new_tab)
现在每次我想访问例如第一个列表时,我都可以这样做:
self.dict_pages[f"page_{0}"].add_widget(item)