Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Kivy:如何在Kivy中显示对象列表?_Python_Kivy_Kivy Language - Fatal编程技术网

Python Kivy:如何在Kivy中显示对象列表?

Python Kivy:如何在Kivy中显示对象列表?,python,kivy,kivy-language,Python,Kivy,Kivy Language,当我创建一个需要创建对象以使用该类的类时。 我做了一个列表,每次我触摸屏幕时都会得到一个新的对象。 但我不知道如何在kivy侧显示这些对象 以下是我的python代码: class Cow(Widget): pass class Farm (Widget): cow_flock = ListProperty([]) def on_touch_down (self, touch): self.cow_flock.append(Cow(

当我创建一个需要创建对象以使用该类的类时。 我做了一个列表,每次我触摸屏幕时都会得到一个新的对象。 但我不知道如何在kivy侧显示这些对象

以下是我的python代码:

class Cow(Widget):
   pass


class Farm (Widget):       

   cow_flock = ListProperty([])
     
   def on_touch_down (self, touch):
       self.cow_flock.append(Cow())                
这是我的kivy代码:

<Cow>:    
    size: 70, 70  
    canvas:
        Rectangle:
            size: self.size
            pos:  self.pos

<House>:
    self.cow_flock #this should display the cows 
:
尺码:70,70
画布:
矩形:
大小:self.size
pos:self.pos
:
self.cow#u flock#这应该显示奶牛
我犯了一个错误:

  kivy.lang.ParserException: Parser: File "<inline>", line 12:
  ...
       10:
       11:<House>:
  >>   12:    self.doorlist
       13:
       14:
  ...
  Invalid property name
     
kivy.lang.ParserException:解析器:文件“”,第12行:
...
10:
11::
>>12:自助入户名单
13:
14:
...
无效的属性名
我是新来的,我不知道它到底是怎么工作的。
换言之;我不知道该使用哪种语法。

如果动态创建小部件,则必须使用父级的
添加小部件
方法将它们添加到父级(通常是
布局

让我们假设您的
Farm
类是某种
Layout
(对于这种情况,
FloatLayout
RelativeLayout
可能是最好的)。 您可以添加一个事件处理程序来监视
cow\u flock
属性的更改:

class Farm(RelativeLayout):
    cow_flock = ListProperty()
    def on_cow_flock(self, cow_flock):
        self.clear_widgets()
        for cow in cow_flock:
            self.add_widget(cow)
这将清除
农场
实例的所有子窗口小部件,并将每个cow逐个添加回。请注意,仅当列表更改时(即添加或删除项目),而不是当列表项目更改时,才会激发\u cow\u flock上的


顺便说一句,我还假设
House
Farm
在代码片段中的意思相同。

如果动态创建小部件,则必须使用父级的
添加小部件
方法将它们添加到父级(通常是
布局

让我们假设您的
Farm
类是某种
Layout
(对于这种情况,
FloatLayout
RelativeLayout
可能是最好的)。 您可以添加一个事件处理程序来监视
cow\u flock
属性的更改:

class Farm(RelativeLayout):
    cow_flock = ListProperty()
    def on_cow_flock(self, cow_flock):
        self.clear_widgets()
        for cow in cow_flock:
            self.add_widget(cow)
这将清除
农场
实例的所有子窗口小部件,并将每个cow逐个添加回。请注意,仅当列表更改时(即添加或删除项目),而不是当列表项目更改时,才会激发\u cow\u flock上的


顺便说一句,我还假设
House
Farm
在代码片段中的意思相同。

正是我想看到的。非常感谢你!你帮了我很多,正是我想看到的。非常感谢你!你帮了我很多