Python/Kivy Несколько экранов не работают, код не распознает диспетчер экранов?

#python #kivy #multiscreen

Вопрос:

Я пытаюсь создать приложение, которое запускается в главном меню, вы нажимаете кнопку воспроизведения, и оно отправляет вас в игру на другом экране.

Проблема в том, что я продолжаю получать сообщение об ошибке: «kv= Builder.load_file(«мой.kv»)», в котором говорится, что «WindowManager» является неизвестным классом.

 import kivy from kivy.app import App from kivy.uix.widget import Widget from kivy.lang.builder import Builder from kivy.uix.screenmanager import Screen, ScreenManager from kivy.vector import Vector from kivy.uix.floatlayout import FloatLayout  kv= Builder.load_file("my.kv")    class WindowManager(ScreenManager):  pass   class MenuWindow(Screen):  pass    class Game(Screen):  pass  class MyApp(App):  def build(self):  return kv     if __name__ == "__main__":  MyApp().run()  

А ВОТ ФАЙЛ KV:

 WindowManager:  MenuWindow:  Game:  lt;MenuWindowgt;:  name: "Menu"  FloatLayout:   Button:  text:"Play"  on_release:  app.root.current= "Game"    lt;Gamegt;:  name: "Game"  

Комментарии:

1. Решено: мне пришлось переместить «kv= Builder.load_file(«мой.kv»)» прямо под всеми определениями классов, чтобы код мог сначала выполнить их, а затем перейти к файлу KV

2. Небольшое предложение: вы можете переименовать имя класса приложения так же, как имя файла .kv, если оба файла находятся в одном каталоге. Вам не нужно подключать их к Builder с помощью этого метода.