我有一个简单的ListView小部件,我从我的python代码传递一个列表。 .kv看起来像这样:
ListView:
id: mylistview
size_hint_y: 0.5
font_size: self.height/5
但字体大小没有任何作用。我想我需要(以某种方式)将值传递给列表中的标签,但是使用了一种非常简单的方法,我无法弄清楚如何。另外,我发现的所有示例似乎都是Android特有的?!谁能告诉我最简单的方法呢?
编辑: 好的,基于建议的答案,以及大量的谷歌搜索,我想出了以下内容:
#:import ListAdapter kivy.adapters.listadapter.ListAdapter
<CustomLabel>:
font_size: 30
<MyPopup>:
GridLayout:
......
ListView:
size_hint: .8, .8
adapter:
ListAdapter(data=["Item #{0}".format(i) for i in range(100)], cls = CustomLabel)
我看过的每个地方都暗示这是正确的方法,但这只是给我“NameError:name'CustomLabel'未定义”??
答案 0 :(得分:2)
Afaik ListView没有font_size
这样的东西,所以这基本上什么都没有。
要获得您想要的内容,您需要为小部件内的font_size
设置Label
,并且最简单的方法是制作自定义Label
,例如:
#kv
<CustomLabel>:
font_size: <pass value here>
#python
class CustomLabel(Label): pass
或
#python
class CustomLabel(Label):
font_size = <value>
编辑: Hups,忘记了适配器的事情。所以基本上你最终会得到自定义Label
,如果你不想转换参数,它对你来说会更简单。
simple_list_adapter = SimpleListAdapter(
data=["Item #{0}".format(i) for i in range(100)],
cls=CustomLabel)
list_view = ListView(adapter=simple_list_adapter)