Python 如何在kivy中创建自定义listview项?
我正在尝试使用kivy为Python3.3中的listview创建一个自定义listview项 列表项应由一个标签和3个按钮组成 我创建了一个listview,将适配器cls设置为自定义项类,如下所示:Python 如何在kivy中创建自定义listview项?,python,listview,kivy,Python,Listview,Kivy,我正在尝试使用kivy为Python3.3中的listview创建一个自定义listview项 列表项应由一个标签和3个按钮组成 我创建了一个listview,将适配器cls设置为自定义项类,如下所示: ListView: id: cue_list adapter: ListAdapter(data=[], cls=ListItemButton) item_strings: [] 然后我像这样设置类规则:
ListView:
id: cue_list
adapter: ListAdapter(data=[], cls=ListItemButton)
item_strings: []
然后我像这样设置类规则:
<ListItemButton>:
size_hint_y: root.size_hint_y
height: root.height
orientation:"horizontal"
Button:
size_hint: 0.2, 1.0
text: "delete"
但奇怪的是,结果是:
如何使用.kv文件语言在kivy中从头开始指定listview项?您的小部件具有ListItemButton的属性和样式,因为……好吧,继承就是这样工作的。如果您不希望这样,请创建自己的列表项小部件子类化
http://kivy.org/docs/api-kivy.uix.listview.html#kivy.uix.listview.SelectableView
。例如,ListItemButton是SelectableView
和Button
的子类
此外,所有删除按钮都重叠,因为ListItemButton不是布局,因此与您提供的大小提示信息无关,因此所有按钮的默认位置为0,0,默认大小为100100。如果需要布局行为,请将列表项设置为a类布局,例如BoxLayout
和SelectableView
的子类
def addcue(self):
self.lv.adapter.data.extend(["new item"])
self.lv._trigger_reset_populate()