【问题标题】:Kivy Reference id by stringKivy 通过字符串引用 id
【发布时间】:2016-01-15 16:11:57
【问题描述】:

我正在构建一个具有 20x20 标签网格的应用程序,我将其设置为 id 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>

可能会让你/某人知道去哪里和/或做什么。

【问题讨论】:

    标签: python string reference kivy


    【解决方案1】:

    您只想通过 id 字符串获取引用?您可以使用普通的字典查找(因为 ids 确实是一个字典)。

    the_string = 'x1y1'
    the_reference = self.ids[the_string]
    the_reference.text = 'the_new_text'
    

    【讨论】:

    • 天哪!为什么我没有想到这个!?非常感谢你! :D
    猜你喜欢
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 2017-07-25
    • 2016-07-05
    • 1970-01-01
    相关资源
    最近更新 更多