我正在基于Kivy开发具有多个接口(约二十个屏幕)的应用程序,我想知道加载kv文件的最佳方法(从速度或性能方面而言)?
这是我想到的两种方法
案例1
将每个kv文件加载到其相应的界面定义文件中
[interface1.py]
...
Builder.load_file("path\to\interface1.kv")
class Interface1(Screen):
# Class definition
...
[interface2.py]
...
Builder.load_file("path\to\interface2.kv")
class Interface2(Screen):
# Class definition
...
[main.py]
...
if __name__ == '__main__':
MainApp().run()
...
案例2
在运行应用程序之前加载kv文件
[interface1.py]
...
class Interface1(Screen):
# Class definition
...
[interface2.py]
...
class Interface2(Screen):
# Class definition
...
[main.py]
...
Builder.load_file("path\to\interface1.kv")
Builder.load_file("path\to\interface2.kv")
if __name__ == '__main__':
MainApp().run()
...
答案 0 :(得分:0)
我不会像总是为每个新的kv文件编写新代码那样,而是通过将KV文件放在目录中的方式像下面的方法那样来构建它。如以下内容:
import os
from os import listdir
from os.path import isfile, join, isdir
from kivy.lang import Builder
# Gets current python dir then add the KV dir
kv_path = os.getcwd() + '/kv/'
kv_load_list = [f for f in listdir(kv_path) if isfile(join(kv_path, f))]
# Loads all KV file
for file in kv_load_list:
if file.endswith('.kv'):
Builder.load_file(kv_path + file)