gpt4 book ai didi

python - 使用 kivy 引用 kv 中的项目时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:58 25 4
gpt4 key购买 nike

在kv中引用kivy项时,为什么不能使用变量?

self.ids.top_left.background_normal = "x.png"

当“top_left”直接是kv文件中的ID并且“x.png”直接引用图片时,这工作得很好。但是当我说这样的话:

button_pressed = top_left
picture_touse = "x.png"
self.ids.button_pressed.background_normal = picture_touse

然后它中断并给我一个错误:

AttributeError: 'super' object has no attribute '__getattr__'

如何使用生成的引用来引用 kv 项?

最佳答案

由于 kivy 将所有标记为 id 的小部件放置在字典类型属性中。因此,您可以使用 dict[key] 来引用它。解决办法是更换

self.ids.button_pressed.background_normal = picture_touse

self.ids[button_pressed].background_normal = picture_touse

代码片段

class ScreenTwo(Screen, Widget):

def methodforbuttonpress(self, button_pressed):
kivy_logo = "kivy-logo-black-64.png"
self.ids[button_pressed].background_normal = kivy_logo

输出

enter image description here

关于python - 使用 kivy 引用 kv 中的项目时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46227567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com