Android 如果它是';在kivy/python中有什么可能?

Android 如果它是';在kivy/python中有什么可能?,android,python,ios,widget,kivy,Android,Python,Ios,Widget,Kivy,所以我想做的是将一组小部件添加到列表中,然后在画布上绘制每个小部件。我正在考虑使用一个循环(例如,widgets:中的widget),然后调用它们的draw函数。我希望每个小部件都是它自己的实体,因为它们彼此不依赖(就像如果我选择删除一个,其他小部件也不会被删除)。到目前为止,我已经有了最小值的代码(它只画了1个黄点): 我知道这在常规python中对于对象是可能的,就像在中一样,您可以将对象添加到列表中并调用它们各自的函数。是否可以在列表或类似内容中添加小部件?有两种方法,选择哪种方法取决于您

所以我想做的是将一组小部件添加到列表中,然后在画布上绘制每个小部件。我正在考虑使用一个循环(例如,widgets:中的widget),然后调用它们的draw函数。我希望每个小部件都是它自己的实体,因为它们彼此不依赖(就像如果我选择删除一个,其他小部件也不会被删除)。到目前为止,我已经有了最小值的代码(它只画了1个黄点):


我知道这在常规python中对于对象是可能的,就像在中一样,您可以将对象添加到列表中并调用它们各自的函数。是否可以在列表或类似内容中添加小部件?

有两种方法,选择哪种方法取决于您是否希望小部件能够被垃圾收集(无内存):

请注意,如果对象以
WeakProxy
的形式出现在列表中,并且没有添加到任何位置(作为子对象),则会收集该对象,如果您稍后尝试访问该对象,则会引发一个错误,即该对象不可用(显然)-变体1

但是,如果您选择直接进行强引用,则除非从
self.dots
列表中弹出,否则不会收集对象

我将
self.draw()
直接放在
\uuuu init\uuuu
中,这样您就可以看到点在哪里,但您可以将其删除并直接从
应用程序调用它。dots
例如:

app = App.get_running_app()
app.dots[0].draw()
# tada!

有两种方法,选择哪种方法取决于您是否希望小部件能够被垃圾收集(无内存):

请注意,如果对象以
WeakProxy
的形式出现在列表中,并且没有添加到任何位置(作为子对象),则会收集该对象,如果您稍后尝试访问该对象,则会引发一个错误,即该对象不可用(显然)-变体1

但是,如果您选择直接进行强引用,则除非从
self.dots
列表中弹出,否则不会收集对象

我将
self.draw()
直接放在
\uuuu init\uuuu
中,这样您就可以看到点在哪里,但您可以将其删除并直接从
应用程序调用它。dots
例如:

app = App.get_running_app()
app.dots[0].draw()
# tada!

要在civy
add\u窗口小部件中显示窗口小部件,请使用父窗口小部件上的
。我还建议使用kv语言进行样式设置,它很简单,并且在引用更改的属性时可以解决问题。小部件是常规的python对象,因此您可以使用它们执行任何操作(例如,将它们存储在列表中,保存在dict中,将它们交给函数,…)。要在civy
中显示窗口小部件,请使用父窗口小部件上的“添加窗口小部件”
。我还建议使用kv语言进行样式设置,它很简单,并且在引用更改的属性时可以解决问题。小部件是常规的python对象,因此您可以使用它们执行任何操作(例如,将它们存储在列表中,保存在dict中,将它们交给函数等)。
app = App.get_running_app()
app.dots[0].draw()
# tada!