我目前正在尝试通过切换屏幕来制作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之类的操作?
答案 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)
我希望这会有所帮助。