我是新来的kivy框架,我不认为我正确理解kv文件和python之间的id引用是如何工作的。当我用纯python编码时,它按预期工作,但我试图学习使用布局语言。我有动态生成分散小部件,我需要将它们添加到布局。Keyerror在Kivy布局语言
在python中。
class MainScreen(Screen):
def on_enter(self):
for index in xrange(numberOfWords):
genColor = [255, 0, 0]
shuffle(genColor)
newWordWidget = WordWidget(genColor)
if newWordWidget.label.color[0] == 255 and newWordWidget.label.text != 'red': newWordWidget.trash = True
if newWordWidget.label.color[1] == 255 and newWordWidget.label.text != 'green': newWordWidget.trash = True
if newWordWidget.label.color[2] == 255 and newWordWidget.label.text != 'blue': newWordWidget.trash = True
print("Trash:" + str(newWordWidget.trash))
newWordWidget.scatter.pos = randint(0, Window.size[0]), randint(0, Window.size[1])
self.ids.widgetscreen.add_widget(newWordWidget.scatter)
的KV文件:
<FloatLayout>:
ScreenManagement:
MainScreen:
<MainScreen>:
FloatLayout:
id: widgetscreen
canvas:
Color:
rgba: 1, 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
我收到就行了KeyError异常:ID:widgetscreen。
这确实解决了这个问题,但它通常被认为是单一的。对于大多数目的,不鼓励使用'ids'属性。 – Kwarrtz