我通过以下方式添加了小部件
:current_mouth = Image(
source=character.current_mouth,
pos_hint=character.mouth_pos,
size_hint_y= None,
height= 500,
id='mouth_'+str(character.id)
)
print('mouth_'+str(character.id))
self.ids.float.add_widget(current_mouth)
然后我尝试将其删除:
self.ids.float.remove_widget(self.ids['mouth_'+str(character.id)])
但这会引发Key错误。我在这里做错了什么?谢谢
答案 0 :(得分:0)
加载ids
文件/字符串时,将构建kv
字典。您无法在python中分配id
(至少不会出现在ids
中的一个)。因此,使用add_widget()
添加的内容将不会显示在ids
中。
在处理kv文件时,对所有标记有的小部件进行弱引用 id被添加到根小部件的id字典中。
要删除该窗口小部件时,可以仅使用对该窗口小部件的引用。如果看不到您的更多代码,我无法确定会是什么。但是类似:
self.ids.float.remove_widget(current_mouth)