【问题标题】:Kivy loading screenKivy 载入画面
【发布时间】:2018-09-17 07:17:17
【问题描述】:

我目前正在尝试通过切换屏幕来为 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)的情况下做到这一点?

【问题讨论】:

    标签: python kivy


    【解决方案1】:

    为每个 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)

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-21
      • 1970-01-01
      • 2011-09-24
      相关资源
      最近更新 更多