我正在尝试使用python类'AClock注册在kvlang中定义的根(AClock)。然后,我正在运行该应用程序。但是什么也没显示。请问我是什么错误?
# File: main.py
from kivy.app import App
from kivy.lang import Builder
from kivy.factory import Factory
from kivy.uix.boxlayout import BoxLayout
KV = '''
AClock:
orientation: 'vertical'
Label:
color: 1,0,1,1
text: '00:00:00'
'''
class AClock(BoxLayout):
pass
class myApp(App):
pass
Factory.register('Aclock',cls=AClock)
if __name__ == '__main__':
Builder.load_string(KV)
myApp().run()
load_string()
方法返回一个Widget
(如果字符串像您一样定义了根Widget
,但是您必须在Widget
的build()
方法中返回该App
。
这里是修改后的代码版本,可以做到这一点:
# File: main.py
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
KV = '''
AClock:
orientation: 'vertical'
Label:
color: 1,0,1,1
text: '00:00:00'
'''
class AClock(BoxLayout):
pass
class myApp(App):
def build(self):
return Builder.load_string(KV)
if __name__ == '__main__':
myApp().run()