Замедляет ли использование .kv файл программу kivy? - PullRequest
0 голосов
/ 08 февраля 2019

Насколько я знаю, существует три способа использования kivy.

  1. Используйте его только в Python.
  2. Используйте формат .kv в Python, используя Builder.load_string().
  3. Используйте файлы .kv.

Я недавно обнаружил, что использование экземпляра kivy, инициализированного в Python, иногда работает быстрее, чем инициализированный в .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 с точки зрения производительностиа функциональность?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...