如何 return 从 KivyMD 列表中选择项目?
How to return selected item from KivyMD list?
我正在尝试编写代码来 return 在列表中单击的项目的数量,但我不知道在 lambda x:
之后需要做什么
from kivy.lang import Builder
from kivymd.app import MDApp
from kivymd.uix.list import OneLineListItem
KV = '''
ScrollView:
MDList:
id: container
'''
class Test(MDApp):
def build(self):
return Builder.load_string(KV)
def on_start(self):
for i in range(20):
self.root.ids.container.add_widget(
OneLineListItem(text=f"Single-line item {i}", on_press=lambda x: print("item number"))
)
Test().run()
这是在循环中定义 lambda 时的常见问题。修复方法是为 lambda 创建一个新参数,即循环变量的当前值。尝试替换:
OneLineListItem(text=f"Single-line item {i}", on_press=lambda x: print("item number"))
与:
OneLineListItem(text=f"Single-line item {i}", on_press=lambda x, item=i: print("item number", item))
我正在尝试编写代码来 return 在列表中单击的项目的数量,但我不知道在 lambda x:
之后需要做什么from kivy.lang import Builder
from kivymd.app import MDApp
from kivymd.uix.list import OneLineListItem
KV = '''
ScrollView:
MDList:
id: container
'''
class Test(MDApp):
def build(self):
return Builder.load_string(KV)
def on_start(self):
for i in range(20):
self.root.ids.container.add_widget(
OneLineListItem(text=f"Single-line item {i}", on_press=lambda x: print("item number"))
)
Test().run()
这是在循环中定义 lambda 时的常见问题。修复方法是为 lambda 创建一个新参数,即循环变量的当前值。尝试替换:
OneLineListItem(text=f"Single-line item {i}", on_press=lambda x: print("item number"))
与:
OneLineListItem(text=f"Single-line item {i}", on_press=lambda x, item=i: print("item number", item))