为了账号安全,请及时绑定邮箱和手机立即绑定

AttributeError: 'BoxLayout' 对象没有属性,textinput

AttributeError: 'BoxLayout' 对象没有属性,textinput

慕侠2389804 2023-06-20 17:11:07
按下按钮时出现问题:我总是得到下面的错误。谁能建议我如何解决这个问题?主.py文件:class MainApp(MDApp):    def build(self):        self.dati = Builder.load_file("conf.kv")        return Builder.load_file("conf.kv")    def show_data(self):        print(self.boxlay.btn_nav.scr1.classe.text)MainApp().run()conf.kv 文件:BoxLayout:    orientation:'vertical'    id: boxlay    btn_nav:btn_nav    MDToolbar:        title: 'Bottom navigation'    MDBottomNavigation:        id: btn_nav        scr1:scr1        MDBottomNavigationItem:            id: scr1            classe:classe            name: 'screen 1'            text: 'Python'            icon: 'language-python'            MDTextField:                id: classe                hint_text: "Enter Class"                pos_hint:{'center_x': 0.5, 'center_y': 0.5}                size_hint_x:None                width:300            MDRectangleFlatButton:                text: 'Python'                pos_hint: {'center_x': 0.5, 'center_y': 0.4}                on_release: app.show_data()运行此代码我收到的错误是:  on_release: app.show_data()   File "main.py", line 27, in show_data     print( AttributeError: 'NoneType' object has no attribute 'btn_nav') AttributeError: 'BoxLayout' object has no attribute 'classe'感谢您的帮助
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

由于您已经ids定义,您可以在 python 代码中使用它们来访问从您的kv. 所以show_data()方法可以是:


def show_data(self):

    print(self.root.ids.classe.text)

另外,我注意到你在打电话:


Builder.load_file("conf.kv")

在你的方法中两次build()。虽然这不是错误,但它可能不是您想要的。该行:


self.dati = Builder.load_file("conf.kv")

创建由以下行创建的 GUI 的完整副本:


return Builder.load_file("conf.kv")

但是, 所引用的小部件树self.dati不是您的 GUI 中的小部件树,因此self.dati可能没有价值。我怀疑你的build()方法应该是:


def build(self):

    self.dati = Builder.load_file("conf.kv")

    return self.dati


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信