给kivy图形指令分配组名
Assign group name to kivy graphic instruction
这看起来应该很简单,但我没有找到方法。
为了遍历我的 canvas 上的指令,我应该使用 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]]
这是我能够找到的对我自己的问题的回答。
所以,我发现 () 指令(以及 canvas 范围内的许多其他 类)有一个 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_group('my_group')
returns 一个带有指令的可迭代对象。
然而这也有其自身的问题。检查我的 .
这看起来应该很简单,但我没有找到方法。
为了遍历我的 canvas 上的指令,我应该使用 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_group('my_group')
returns 一个带有指令的可迭代对象。
然而这也有其自身的问题。检查我的