【发布时间】:2018-05-27 13:09:10
【问题描述】:
我试图在程序启动时在 Kivy 中初始化一些小部件的值,但没有成功。简化的 Python 代码是:
inital_text = "init text"
class MainApp(App):
def initialize_widgets(self):
self.root.ids.my_label.text = initial_text
if __name__ == '__main__':
MainApp().run()
MainApp.initialize_widgets(App)
kv 文件中的相关部分是:
Label:
id: my_label
text: "default text"
当我运行程序时,标签显示“默认文本”。退出时出现错误:
line 5, in initialize_widgets
self.root.ids.my_label.text = initial_text
AttributeError: type object 'App' has no attribute 'root'
我尝试了其他解决方法,有些非常绝望,但没有成功。
【问题讨论】:
-
为什么你的根会有一个根?改为
self.ids.my_label.text -
@pstatix 我也试过这个。在那种情况下,我得到错误“AttributeError:类型对象'MainApp'没有属性'ids'”