据我所知,有三种使用基维的方法。
memalign()
使用.kv格式。我最近发现,使用在Python中初始化的kivy实例有时比在Builder.load_string()
中初始化的实例更快。
例如,
.kv
往往比
更快class Root(BoxLayout):
self.a = SomeWidget()
self.add_widget(self.a)
def some_function(self):
self.a.do_something() # <-- This line of the codes
(仅考虑Builder.load_string('''
Root:
SomeWidget:
id: a
''')
class Root(BoxLayout):
def some_function(self):
self.ids.a.do_something() # <-- This line of the codes
和self.a.do_something()
之间的性能)
我在想的是,在我看来,kivy主循环正在异步工作,而python工作在同步,因此可以延迟对self.ids.a.do_something()
的引用,直到主循环完成一个循环为止。如果我错了,请纠正我。
这样在性能上有区别吗?
此外,在性能和功能上,使用.kv
和Builder.load_string()
文件之间有什么区别吗?