Python 将组名分配给kivy图形指令

Python 将组名分配给kivy图形指令,python,kivy,kivy-language,Python,Kivy,Kivy Language,这看起来应该很简单,但我没能找到一个方法 为了遍历画布上的指令,我应该使用canvas.get_group()方法。为了做到这一点,我首先需要为我打算迭代的任何指令分配一个组名。如何做到这一点?使用InstructionGroup()。这是kivy文档中的一个示例: blue = InstructionGroup() blue.add(Color(0, 0, 1, 0.2)) blue.add(Rectangle(pos=self.pos, size=(100, 100))) green =

这看起来应该很简单,但我没能找到一个方法

为了遍历画布上的指令,我应该使用
canvas.get_group()
方法。为了做到这一点,我首先需要为我打算迭代的任何指令分配一个组名。如何做到这一点?

使用
InstructionGroup()
。这是kivy文档中的一个示例:

blue = InstructionGroup()
blue.add(Color(0, 0, 1, 0.2))
blue.add(Rectangle(pos=self.pos, size=(100, 100)))

green = InstructionGroup()
green.add(Color(0, 1, 0, 0.4))
green.add(Rectangle(pos=(100, 100), size=(100, 100)))

# Here, self should be a Widget or subclass
[self.canvas.add(group) for group in [blue, green]]

这是我自己问题的答案,我能找到

因此,我发现()指令(以及画布范围内的许多其他类)有一个
group
属性,未在文档中列出,可以在创建指令时设置该属性:

就像python中一样:

with self.canvas: (self must be a widget)
    Rectangle(pos=self.pos, size=self.size, group='my_group')
在kv中也是如此:

<SomeWidget>:
    canvas:
        Rectangle:
            group:'my_group'
:
画布:
矩形:
小组:'我的小组'
这样做后,稍后对
self.canvas.get\u group('my\u group')
的调用将返回一个包含指令的iterable


然而,这也有其自身的问题。检查我的。

我已经试过了。但是,使用分配的组变量名(
canvas.get\u group('green')
调用
get\u group()
)不会在结果iterable中产生任何指令,即返回空列表。我正在寻找一种分配组名的方法,以便在
get\u group()
调用中使用它。