Kivy self.root.ids.login_pass.text = "" AttributeError: 'FireBase' 对象没有属性 'root'
Posted
技术标签:
【中文标题】Kivy self.root.ids.login_pass.text = "" AttributeError: \'FireBase\' 对象没有属性 \'root\'【英文标题】:Kivy self.root.ids.login_pass.text = "" AttributeError: 'FireBase' object has no attribute 'root'Kivy self.root.ids.login_pass.text = "" AttributeError: 'FireBase' 对象没有属性 'root' 【发布时间】:2021-12-10 07:29:27 【问题描述】:所以我有一个名为 Firebase 的类,我在其中调用 google 的 api,它看起来像这样
class FireBase:
def sign_up(self, username, email, password):
...
...
def poggers(self):
self.root.ids.login_pass.text = ""
在我的 login.kv 文件中,我有这样的内容:
Button:
...
...
on_press:
app.firebase.poggers()
还有TextInput框:
TextInput:
id: login_pass
hint_text: "Password"
每当我按下按钮时,它并没有将文本设置为“”,但它显示:“ self.root.ids.login_pass.text =” AttributeError: 'FireBase' 对象没有属性 'root'"
我尝试了很多解决方案并进行了搜索,但我不确定发生了什么,也不知道如何解决。
编辑: 我的 MainApp 多一点:
class MainApp(MDApp):
def build(self):
self.firebase = FireBase()
screen_manager = ScreenManager()
screen_manager.add_widget(Builder.load_file("kv-files/main.kv"))
screen_manager.add_widget(Builder.load_file("kv-files/login.kv"))
screen_manager.add_widget(Builder.load_file("kv-files/signup.kv"))
return screen_manager
【问题讨论】:
【参考方案1】:要使用App
类中的小部件进行访问,您需要使用self.root.ids.blablabla...
,但在其他类中访问您的小部件,故事是这样的:您使用self.ids.blablabla...
代替:
def poggers(self):
self.ids.login_pass.text = ""
【讨论】:
以上是关于Kivy self.root.ids.login_pass.text = "" AttributeError: 'FireBase' 对象没有属性 'root'的主要内容,如果未能解决你的问题,请参考以下文章