Kivy,如何在画布中使用数据

时间:2015-08-19 14:02:31

标签: python kivy

我有一个产品列表,我想用标签显示它。 我知道如何从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'

1 个答案:

答案 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'

结果将是:

kivy labels