приложение kivy работает без реализации метода build () - PullRequest
0 голосов
/ 20 января 2020

Интересно, почему код Kivy продолжал показывать мне то же самое черное окно, несмотря на некоторые обновления в файле kv. Затем заметил, что у меня есть опечатка в методе buidl().

Из документов "... реализуется его метод build (), поэтому он возвращает экземпляр Widget (root вашего дерева виджетов"). ) ... ", вы должны реализовать метод.

Почему этот код запускается и выдает черное окно по умолчанию?

# game.py
from kivy.app import App
from kivy.uix.widget import Widget


class Game(Widget):
    pass


class GameApp(App):
    def buidl(self):
        return Game()


GameApp().run()

Файл kv

#game.kv
<Game>:
    canvas:
        Color:
            rgb: .5,.5, 1.0
        Rectangle:
            pos: 0,0
            size: self.size

Бег кивы 1.11.1 python 3.7

1 Ответ

1 голос
/ 20 января 2020

Приложения Kivy имеют метод по умолчанию build(), который вы можете увидеть здесь ; он просто возвращает пустой виджет. Обычно в kivy есть два метода для создания дерева виджетов root, либо путем переопределения build(), либо путем определения виджета root в файле kv. Для получения дополнительной информации см. документацию о создании приложения.

Ваша цитата может быть найдена в основы kivy , перед вашим предложением:

Создать приложение kivy так же просто, как:

Полагаю, авторы решили сделать учебник по основам c простым и не упомянули реализацию по умолчанию build, так как это не так. действительно ничего полезного. Они также пропустили kv способ определения виджета root; Опять же, я думаю, что в этом первом введении я не перегружу читателя.

...