无法访问 Python 中的小部件 ID

Unable to access Widget ids in Python

代码:

from kivymd.app import MDApp
from kivy.properties import ObjectProperty
from kivy.lang import Builder
KV = """
MDScreen:
    submit_btn: submit_btn
    MDRaisedButton:
        id: submit_btn
        text:'Submit'
        on_press: app.btn()
"""
class Test(MDApp):
    submit_btn = ObjectProperty(None)
    def build(self):
        return Builder.load_string(KV)
    def btn(self):
        print(self.submit_btn.state)

Test().run()

按下按钮时,我收到以下错误:

AttributeError: 'NoneType' object has no attribute 'state'

我无法访问 id 个小部件。我做错了什么?

这与您几分钟前提出的问题非常相似:您没有将 self.submit_btn 设置为 None 以外的任何值。看起来你在 kv 规则中尝试过,但你实际上已经设置了 MdScreen 实例的 属性 ,它是你的根小部件,访问为 self.root.submit_btn.