我有一个产品列表,我想用标签显示它。 我知道如何从TextInput获取数据,但现在我想在画布中显示我的列表。
你怎么能这样做?
编辑:
我在' global':
中有这样的数据products = [{'name' : 'Coca' , 'price' : 1.8000},{'name' : 'Fanta' ,
'price' : 1.8000}]
我希望以GridLayout
2个col,x行,2个标签显示,1个用于名称,另一个用于Fanta,Coca和其他人的价格......
<CommandeScreen>:
GridLayout:
rows: 4
cols: 2
Button:
text: 'Coca'
Label:
text: '1.80 euros'
Button:
text: 'Orangina'
Label:
text: '1.80 euros'
Button:
text: 'Ajouter'
Button:
text: 'Quitter'
on_press: root.manager.current = 'menu'
答案 0 :(得分:2)
一种方法是在类定义中将其添加到Python代码中:
from kivy.uix.label import Label
class CommandeScreen(Screen):
def __init__(self, **kwargs):
super(CommandeScreen, self).__init__(**kwargs)
products = [{'name' : 'Coca' , 'price' : 1.8000},{'name' : 'Fanta' ,
'price' : 1.8000}]
for p in products:
self.gl.add_widget(Label(text=p['name']))
self.gl.add_widget(Label(text=str(p['price']))
在kv中,它会是这样的:
<CommandeScreen>:
gl: GL
GridLayout:
rows: 2
GridLayout:
id: GL
cols: 2
Label:
text: 'Prix : '
Label:
text: 'In euros'
GridLayout:
cols: 2
Button:
text: 'Ajouter'
Button:
text: 'Quitter'
on_press: root.manager.current = 'menu'
结果将是: