Kivy - Error: "object has no attribute" when I called it from .kv file
Kivy - Error: "object has no attribute" when I called it from .kv file
当我运行下一段代码时:
class VState(State):
def __init__(self, name='', stateType=None, **kwargs):
super(VState, self).__init__(**kwargs)
self.vBackground = 'my_background'
self.name = name
def setBackgroundImage(self):
print (self.vBackground)
return 'gui/my_background_image'
会完成的。当我从 .kv 文件调用 setBackgroundImage() 方法时,出现错误:“AttributeError: 'VState' object has no attribute 'vBackground'”
.kv 文件:
...
source: 'atlas://' + root.setBackgroundImage()
但是当我运行上面的代码没有引用任何属性时,它会再次完成......没有行
print (self.vBackground)
会完成的。为什么我不能引用 kv 文件中的任何属性?
感谢您提供一些想法...
kv 首先在小部件 __init__
期间评估,在这种情况下发生在您设置 self.vBackground.[=12 之前 之前的超级调用 =]
您可以改为将顺序更改为
self.vBackground = 'my_background'
super(VState, self).__init__(**kwargs)
使用 StringProperty 可能会更好。
当我运行下一段代码时:
class VState(State):
def __init__(self, name='', stateType=None, **kwargs): super(VState, self).__init__(**kwargs) self.vBackground = 'my_background' self.name = name def setBackgroundImage(self): print (self.vBackground) return 'gui/my_background_image'
会完成的。当我从 .kv 文件调用 setBackgroundImage() 方法时,出现错误:“AttributeError: 'VState' object has no attribute 'vBackground'”
.kv 文件:
...
source: 'atlas://' + root.setBackgroundImage()
但是当我运行上面的代码没有引用任何属性时,它会再次完成......没有行
print (self.vBackground)
会完成的。为什么我不能引用 kv 文件中的任何属性?
感谢您提供一些想法...
kv 首先在小部件 您可以改为将顺序更改为 使用 StringProperty 可能会更好。__init__
期间评估,在这种情况下发生在您设置 self.vBackground.[=12 之前 之前的超级调用 =]
self.vBackground = 'my_background'
super(VState, self).__init__(**kwargs)