为了在没有自定义类的情况下做到这一点,请使用答案末尾的示例:
from kivy.lang import Builder
from kivy.properties import StringProperty
from kivymd.app import MDApp
from kivymd.uix.list import IRightBodyTouch, TwoLineAvatarIconListItem
from kivymd.uix.selectioncontrol import MDCheckbox
KV = """
<CB@TwoLineAvatarIconListItem>:
IconLeftWidget:
id: i1
icon: "pencil" #root.icon
IconRightWidget:
icon: "a11.png" #this is a transparent png image of 188 bytes
MDCheckbox:
id: x54
on_active:
app.save_checked(*args,root.text,root.secondary_text,root.ids.i1.icon,root)
BoxLayout:
ScrollView:
MDList:
id: scroll
#for i in range(15)#
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Hello jbsidis"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Josue Carranza"
secondary_text: "jbsidis"
icon: "pencil"
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
CB:
text: "Hello"
secondary_text: "Two"
icon: "pencil"
MDRaisedButton:
id: cm
text: "Save"
on_release: app.save_checked()
"""
selected_item = []
class MainAppjbsidis(MDApp):
def build(self):
return Builder.load_string(KV)
def save_checked(self,checkbox, value,a,b,c,w):
mmm="""
You clicked on: Josue Carranza jbsidis
Selected Items 4: [[<WeakProxy to <kivy.factory.CB object at 0x7efc032f4430>>], [<WeakProxy to <kivy.factory.CB object at 0x7efc032f4430>>], [<WeakProxy to <kivy.factory.CB object at 0x7efc0324d9e0>>], [<WeakProxy to <kivy.factory.CB object at 0x7efc03137b30>>]]
"""
if value:
print('The checkbox is active', 'and', checkbox.state, 'state')
global selected_item
if len(selected_item)==0:
selected_item = []
selected_item.append([w])
print("\n\nYou clicked on: ",a,b,c)
print("Selected Items "+str(len(selected_item))+": "+str(selected_item))
if len(selected_item)>0:
selected_item.append([w])
print("\n\nYou clicked on: ",a,b,c)
print("Selected Items "+str(len(selected_item))+": "+str(selected_item))
self.root.ids.cm.text="Save "+str(len(selected_item))
else:
print('\n\nThe checkbox is inactive', 'and', checkbox.state, 'state')
new_list=[]
if len(selected_item)>0:
for x in selected_item:
if x==w:
pass
if x!=w:
new_list=new_list+[w]
selected_item=new_list
print("\n\nNew Items: "+str(selected_item))
MainAppjbsidis().run()
图片:
如果您不想拥有任何自定义类,例如:
<CB@TwoLineAvatarIconListItem>:
IconLeftWidget:
id: i1
icon: "pencil" #root.icon
IconRightWidget:
icon: "a11.png" #this is a transparent png image of 188 bytes
MDCheckbox:
id: x54
on_active:
app.save_checked(*args,root.text,root.secondary_text,root.ids.i1.icon,root)
你应该使用 do it with:
from kivy.lang import Builder
from kivy.properties import StringProperty
from kivymd.app import MDApp
from kivymd.uix.list import IRightBodyTouch, TwoLineAvatarIconListItem
from kivymd.uix.selectioncontrol import MDCheckbox
KV = """
BoxLayout:
ScrollView:
MDList:
id: scroll
#for i in range(15)#
TwoLineAvatarIconListItem:
id: mm1
text: "Hello"
secondary_text: "Two"
icon: "pencil"
IconLeftWidget:
id: i1
icon: "pencil" #root.icon
IconRightWidget:
icon: "a11.png" #this is a transparent png image of 188 bytes
MDCheckbox:
id: x54
on_active:
app.save_checked(*args,root.ids.mm1.text,root.ids.mm1.secondary_text,root.ids.i1.icon,root)
TwoLineAvatarIconListItem:
id: mm2
text: "Hello"
secondary_text: "Two"
icon: "pencil"
IconLeftWidget:
id: i1
icon: "pencil" #root.icon
IconRightWidget:
icon: "a11.png" #this is a transparent png image of 188 bytes
MDCheckbox:
id: x54
on_active:
app.save_checked(*args,root.ids.mm2.text,root.ids.mm2.secondary_text,root.ids.i1.icon,root)
TwoLineAvatarIconListItem:
id: mm3
text: "Hello"
secondary_text: "Two"
icon: "pencil"
IconLeftWidget:
id: i1
icon: "pencil" #root.icon
IconRightWidget:
icon: "a11.png" #this is a transparent png image of 188 bytes
MDCheckbox:
id: x54
on_active:
app.save_checked(*args,root.ids.mm3.text,root.ids.mm3.secondary_text,root.ids.i1.icon,root)
TwoLineAvatarIconListItem:
id: mm4
text: "Hello"
secondary_text: "Two"
icon: "pencil"
IconLeftWidget:
id: i1
icon: "pencil" #root.icon
IconRightWidget:
icon: "a11.png" #this is a transparent png image of 188 bytes
MDCheckbox:
id: x54
on_active:
app.save_checked(*args,root.ids.mm4.text,root.ids.mm4.secondary_text,root.ids.i1.icon,root)
TwoLineAvatarIconListItem:
id: mm5
text: "Hello"
secondary_text: "Two"
icon: "pencil"
IconLeftWidget:
id: i1
icon: "pencil" #root.icon
IconRightWidget:
icon: "a11.png" #this is a transparent png image of 188 bytes
MDCheckbox:
id: x54
on_active:
app.save_checked(*args,root.ids.mm5.text,root.ids.mm5.secondary_text,root.ids.i1.icon,root)
TwoLineAvatarIconListItem:
id: mm6
text: "Hello"
secondary_text: "Two"
icon: "pencil"
IconLeftWidget:
id: i1
icon: "pencil" #root.icon
IconRightWidget:
icon: "a11.png" #this is a transparent png image of 188 bytes
MDCheckbox:
id: x54
on_active:
app.save_checked(*args,root.ids.mm6.text,root.ids.mm6.secondary_text,root.ids.i1.icon,root)
MDRaisedButton:
id: cm
text: "Save"
on_release: app.save_checked()
"""
selected_item = []
class MainAppjbsidis(MDApp):
def build(self):
return Builder.load_string(KV)
def save_checked(self,checkbox, value,a,b,c,w):
mmm="""
You clicked on: Josue Carranza jbsidis
Selected Items 4: [[<WeakProxy to <kivy.factory.CB object at 0x7efc032f4430>>], [<WeakProxy to <kivy.factory.CB object at 0x7efc032f4430>>], [<WeakProxy to <kivy.factory.CB object at 0x7efc0324d9e0>>], [<WeakProxy to <kivy.factory.CB object at 0x7efc03137b30>>]]
"""
if value:
print('The checkbox is active', 'and', checkbox.state, 'state')
global selected_item
if len(selected_item)==0:
selected_item = []
selected_item.append([w])
print("\n\nYou clicked on: ",a,b,c)
print("Selected Items "+str(len(selected_item))+": "+str(selected_item))
if len(selected_item)>0:
selected_item.append([w])
print("\n\nYou clicked on: ",a,b,c)
print("Selected Items "+str(len(selected_item))+": "+str(selected_item))
self.root.ids.cm.text="Save "+str(len(selected_item))
else:
print('\n\nThe checkbox is inactive', 'and', checkbox.state, 'state')
new_list=[]
if len(selected_item)>0:
for x in selected_item:
if x==w:
pass
if x!=w:
new_list=new_list+[w]
selected_item=new_list
print("\n\nNew Items: "+str(selected_item))
MainAppjbsidis().run()
没有客户类的图片: