我正在构建一个具有20x20标签网格的应用程序,我将其设置为ids id: x1y1, id: x1y2, ... , id: x20y20
等。我希望能够通过传递字符串来引用id,并修改其中的文本,使用类似的东西;
self.ids.name("x1y1").text = "Anything"
我看过dir(self.ids)
,dir(self.ids.items())
等,但似乎无法弄明白。它甚至可能吗?
我可以创建if statements
喜欢的列表
if str(passedString) == "x1y1":
self.id.x1y1.text == "Anything"
if str(passedString) == "x1y2":
self.id.x1y2.text == "Anything"
虽然我认为这是非常糟糕的做法,但也考虑到我需要400 if statements
! - 当然我可以写一个小帮手脚本来为我编写所有这些代码,但同样,它并不理想。
编辑: 我看了一眼;
for key, val in self.ids.items():
print("key={0}, val={1}".format(key, val))
哪个印刷;
key=x1y2, val=<kivy.uix.label.Label object at 0x7f565a34e6d0>
key=x1y3, val=<kivy.uix.label.Label object at 0x7f565a2c1e88>
可能会让你/某人知道去哪里和/或做什么。
答案 0 :(得分:1)
您只想通过ID的字符串获取引用?您可以使用普通的字典查找(因为ID实际上是一个字典)。
the_string = 'x1y1'
the_reference = self.ids[the_string]
the_reference.text = 'the_new_text'