使用.kv文件会减慢kivy程序吗?

2024-09-27 09:31:58 发布

您现在位置:Python中文网/ 问答频道 /正文

据我所知,有三种使用kivy的方法。你知道吗

  1. 仅在Python中使用。你知道吗
  2. 在Python中使用Builder.load_string()使用.kv格式。你知道吗
  3. 使用.kv文件。你知道吗

我最近发现,使用在Python中初始化的kivy实例有时比在.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()self.ids.a.do_something()之间的性能)

我想的是,在我看来,kivy主循环是异步工作的,python是同步工作的,所以对.kv的引用可以延迟到主循环完成一个周期。如果我错了,请纠正我。你知道吗

这样在性能上有区别吗?你知道吗

另外,使用Builder.load_string().kv文件在性能和功能上有什么区别吗?你知道吗


Tags: 文件实例selfstringbuilderloadroot性能

热门问题