我是新來的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