Python 如何访问kivy中另一个类的对象属性而不获取AttributeError:';超级';对象没有属性'__getattr';
您好,我正在尝试使用self.id从其他类访问对象的属性。。但是我得到了一个恼人的错误:AttributeError:“super”对象没有属性“\uu getattr\uuuu” 这是我的代码,当我点击“男孩按钮”时,我得到了错误 .py文件Python 如何访问kivy中另一个类的对象属性而不获取AttributeError:';超级';对象没有属性'__getattr';,python,kivy,Python,Kivy,您好,我正在尝试使用self.id从其他类访问对象的属性。。但是我得到了一个恼人的错误:AttributeError:“super”对象没有属性“\uu getattr\uuuu” 这是我的代码,当我点击“男孩按钮”时,我得到了错误 .py文件 from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.properties import ObjectProperty class Get_People(
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
class Get_People(BoxLayout):
root_lbl=ObjectProperty()
class Get_Boys(BoxLayout):
label_b=ObjectProperty()
def show(self):
self.ids. root_lbl.text='i am called'
class lstApp(App):
def build(self):
self.load_kv('dates_test.kv')
return Get_People()
if __name__=='__main__':
lstApp().run()
这是.Kv文件
<Get_People>:
root_lbl: root_lbl
orientation: 'vertical'
Button:
name: root_btn
id: root_btn
text: "I am Root Button"
Label:
id: root_lbl
text: "I am Root Label"
Get_Boys:
<Get_Boys>:
label_b: label_b
Button:
id: button_b
text: "Button for boys"
on_press: root.show()
Label:
id: label_b
text: "Label for boys"
:
root\u lbl:root\u lbl
方向:“垂直”
按钮:
姓名:root_btn
id:root\u btn
文本:“我是根按钮”
标签:
id:root\u lbl
文本:“我是根标签”
男孩们:
:
标签b:标签b
按钮:
id:按钮b
文字:“男孩按钮”
按:root.show()
标签:
id:label_b
文字:“男孩标签”
如果我们观察到Get\u Boys
的子元素是button\u b
和label\u b
,因此这些元素可以通过id
访问。但是如果我们查看Get\u People
,Get\u Boys
是一个孩子,因此您可以通过parent
方法访问Get\u People
,然后通过root\u lbl
访问:
class Get_Boys(BoxLayout):
label_b=ObjectProperty()
def show(self):
self.parent.root_lbl.text='i am called'
很高兴它像魔术一样工作,谢谢,有什么地方我可以提前了解它吗