奇异果载入画面

时间:2018-09-17 07:17:18

标签: python kivy

我目前正在尝试通过切换屏幕来制作Kivy应用程序的加载屏幕。

#: import FadeTransition kivy.uix.screenmanager.FadeTransition


MyScreenManager:
    id: myscreenmanager
    transition: FadeTransition()
    PreLoadScreen:
    LoadingScreen:
    LoginScreen:

<PreLoadScreen>: 
    ...
<LoadingScreen>: 
    ...
<LoginScreen>: 
    ...

我知道如何通过按这样的按钮来更改屏幕。

    Button:
        text: 'Log In'
        on_release: 
        app.root.current = 'somescreen'

但是我不知道如何自动切换屏幕,

(黑屏)

〜自动消失为

->(带有加载动画或图像的屏幕)

〜完成一些加载后,逐渐消失为

->(登录屏幕)

是否可以通过一种好方法而无需执行诸如on_release或on_touch_down之类的操作?

1 个答案:

答案 0 :(得分:0)

为每个Kivy屏幕创建以下python类:

class PreLoadScreen(Screen):
   def switchToNextScreen(self) 
      self.parent.current = 'LoadingScreen'

class LoadingScreen(Screen):
    def switchToNextScreen(self):
        self.parent.current = 'PreLoadScreen'

class PreLoadScreen(Screen):
    def switchToNextScreen(self):
        self.parent.current = 'PreLoadScreen'

然后,根据您的屏幕切换条件,要切换当前显示的屏幕,请调用switchToNextScreen。

self.parent在您的情况下等同于app.root。当您进一步嵌套到一个类中时,您将不得不反复调用parent(self.parent.parent)

我希望这会有所帮助。