【问题标题】:Unable to access Widget ids in Python无法在 Python 中访问 Widget id
【发布时间】:2021-08-05 11:15:56
【问题描述】:

代码:

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 的小部件。我做错了什么?

【问题讨论】:

    标签: python kivy kivy-language kivymd


    【解决方案1】:

    这与您几分钟前的上一个问题非常相似:您没有将self.submit_btn 设置为除无之外的任何内容。看起来您尝试使用 kv 规则,但您实际上设置了 MdScreen 实例的属性,它是您的根小部件,以 self.root.submit_btn 访问。

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      • 2022-08-19
      • 2016-09-07
      • 2015-04-25
      相关资源
      最近更新 更多