Kivy如何使用Builder.load_file?

时间:2017-02-07 18:23:33

标签: python kivy kivy-language

我有以下目录结构:

project/
    controller/
        __init__.py
        app1.py
    view/
        app1.kv
    main.py

我的main.py是:

from controller.app1 import App1


def main():
    App1().run()


if __name__ == '__main__':
    main()

我的app1.py是:

from kivy.app import App
from kivy.lang import Builder

Builder.load_file('view/app1.kv')

class App1(App):
    pass

我正在跑步:

kivy main.py

然而,我的Kivy内容未加载。

2 个答案:

答案 0 :(得分:1)

使用Build.load_file加载.kv文件时,请确保小部件为root 为避免它返回None。请阅读doc,以了解您对Builder所做的其他事情

from kivy.app import App
from kivy.lang import Builder


class App1(App):
    def build(self):
        self.root = Builder.load_file(os.path.join(dirname(__file__),/app1.kv')
    )

答案 1 :(得分:0)

事实证明,方法build()必须在继承自App的类中实现,此方法必须返回Builder.load_file('view/app1.kv'),并使用@Leon建议my {{1是}:

app1.py

现在,Kivy文件已正确加载。