如何使用 kivy 从动态添加的小部件转发信息?
How can I pass an information forward from a dynamically added widget with kivy?
我正在从 API 端点取回数据,我用它来填充 ThreeLineListItem 小部件。问题是我仍然找不到像下面的例子那样传递 person['id']
的方法:
[...]
data = response.json() #response from an API request
if response.status_code == 200:
for person in data:
print(person['id'])
self.ids.person_mdlist.add_widget(
ThreeLineListItem(
text=str(person['name']),
secondary_text=str(person['document']),
tertiary_text=str(person['descript']),
on_release=lambda x: self.test(x),
),)
我的计划是为将来 API 调用获取选定的人员 ID。有简单的方法吗?
我做到了!
由于 ThreeLineListItem 没有任何 'id' 属性,我不得不基于它创建一个自定义小部件:
class CustomThreeLineListItem(ThreeLineListItem):
list_id = NumericProperty(0)
然后:
[...]
data = response.json() #response from an API request
if response.status_code == 200:
for person in data:
print(person['id'])
self.ids.person_mdlist.add_widget(
CustomThreeLineListItem(
list_id=person['id'],
text=str(person['name']),
secondary_text=str(person['document']),
tertiary_text=str(person['descript']),
on_release=lambda x: self.test(x),
),)
希望对以后的人有所帮助。
我正在从 API 端点取回数据,我用它来填充 ThreeLineListItem 小部件。问题是我仍然找不到像下面的例子那样传递 person['id']
的方法:
[...]
data = response.json() #response from an API request
if response.status_code == 200:
for person in data:
print(person['id'])
self.ids.person_mdlist.add_widget(
ThreeLineListItem(
text=str(person['name']),
secondary_text=str(person['document']),
tertiary_text=str(person['descript']),
on_release=lambda x: self.test(x),
),)
我的计划是为将来 API 调用获取选定的人员 ID。有简单的方法吗?
我做到了! 由于 ThreeLineListItem 没有任何 'id' 属性,我不得不基于它创建一个自定义小部件:
class CustomThreeLineListItem(ThreeLineListItem):
list_id = NumericProperty(0)
然后:
[...]
data = response.json() #response from an API request
if response.status_code == 200:
for person in data:
print(person['id'])
self.ids.person_mdlist.add_widget(
CustomThreeLineListItem(
list_id=person['id'],
text=str(person['name']),
secondary_text=str(person['document']),
tertiary_text=str(person['descript']),
on_release=lambda x: self.test(x),
),)
希望对以后的人有所帮助。