Kivy:Listview-所选项目的位置
我在Kivy被困在一个地方。据我所知,Kivy类似于Android风格的UI(适配器,kv语言)。我也遵循同样的逻辑 我有一个项目列表,这些项目被馈送到ListAdapter。现在我需要一个类似Android(onItemClick)的方法,它将给出所选项目的位置。我什么地方都没找到,我看了所有的文件,但没有任何线索。是的,我可以通过for循环手动查找某些项目,但这对我来说是不需要的 有人对此有答案吗Kivy:Listview-所选项目的位置,listview,kivy,Listview,Kivy,我在Kivy被困在一个地方。据我所知,Kivy类似于Android风格的UI(适配器,kv语言)。我也遵循同样的逻辑 我有一个项目列表,这些项目被馈送到ListAdapter。现在我需要一个类似Android(onItemClick)的方法,它将给出所选项目的位置。我什么地方都没找到,我看了所有的文件,但没有任何线索。是的,我可以通过for循环手动查找某些项目,但这对我来说是不需要的 有人对此有答案吗 关于您可以使用ListAdapter并使用自定义按钮小部件为其提供信息。自定义小部件可以有一个
关于您可以使用ListAdapter并使用自定义按钮小部件为其提供信息。自定义小部件可以有一个
on_press
功能,在其中定义该功能以返回小部件的pos
main.py
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.listview import ListItemButton
from kivy.properties import ObjectProperty
class MyBoxLayout(BoxLayout):
button_list_obj = ObjectProperty()
def __init__(self, **kwargs):
super().__init__(**kwargs)
mylist = ['First Button', 'Second Button', 'Third Button', 'Fourth Button', 'Fifth Button']
self.button_list_obj.item_strings = mylist
self.button_list_obj.adapter.data.clear()
self.button_list_obj.adapter.data.extend(mylist)
class MyButton(ListItemButton):
def print_pos(self, mybutton):
print(self.pos)
class ButtonListTestApp(App):
def build(self):
return MyBoxLayout()
if __name__== "__main__":
ButtonListTestApp().run()
按钮列表测试.kv
#: import main main
#: import ListAdapter kivy.adapters.listadapter.ListAdapter
<MyBoxLayout>:
button_list_obj: button_list
orientation: 'vertical'
ListView:
id: button_list
adapter:
ListAdapter(data=[], cls=main.MyButton)
<MyButton>
on_press: root.print_pos(self)
#:导入主
#:导入ListAdapter kivy.adapters.ListAdapter.ListAdapter
:
按钮列表对象:按钮列表
方向:“垂直”
列表视图:
id:按钮列表
适配器:
ListAdapter(数据=[],cls=main.MyButton)
按:根。打印位置(自身)