Я пытаюсь заставить диспетчер экрана сначала открывать разные экраны в зависимости от переменного времени Kivy - PullRequest
0 голосов
/ 02 августа 2020

Есть ли способ изменить экран, на котором запускается ваш screenmmanager в kivy. Мой диспетчер экрана находится в файле kivy на языке kivy, но мой класс приложения явно находится в python, где я помещаю функцию проверки, на каком экране должен запускаться диспетчер экрана.

Он должен выглядеть примерно так:

kvfile.kv

<Screenmanager>
     Screen1:
          name: 'screen_1'
     Screen2:
          name: 'screen_2'

pythonfile.py

import "libraries"

class Screen1(Screen):
       pass

class Screen2(Screen):
       pass

class Screenmanager(ScreenManager):
       pass

class MyApp(self, App):
       def Build(self):
           if "I already have this code":
                  self.idk.idk.current = 'screen_1' <---- Here is where I need help
                  return Screenmanager
           else:
               self.idk.idk.current = 'screen_2' <------ And here obviously
               return Screenmanager

1 Ответ

1 голос
/ 03 августа 2020

Вы можете просто установить current Screen перед возвратом ScreenManager. Что-то вроде:

class MyApp(self, App):
    def Build(self):
        Builder.load_file("kvfile.kv")
        sm = ScreenManager()
        sm.transition = NoTransition()
        if something:
            sm.current = "screen_1"
        else:
            sm.current = "screen_2"
        return sm
    
...