kivy:kvlan寄存器失败

问题描述 投票:0回答:1

我正在尝试使用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()
kivy kivy-language
1个回答
0
投票

load_string()方法返回一个Widget(如果字符串像您一样定义了根Widget,但是您必须在Widgetbuild()方法中返回该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()
© www.soinside.com 2019 - 2024. All rights reserved.