【发布时间】:2016-11-23 15:45:50
【问题描述】:
互联网上的所有教程都展示了如何使用 ScreenManager 并从 .kv 文件更改不同的屏幕。 我还在学习,我无法从 .py 文件中控制它。
我希望我的应用在开始之前先执行一些验证。因此,我希望 Kivy 应用程序从一个简单的“请稍候”屏幕开始,然后转到主屏幕。
请帮忙!
【问题讨论】:
互联网上的所有教程都展示了如何使用 ScreenManager 并从 .kv 文件更改不同的屏幕。 我还在学习,我无法从 .py 文件中控制它。
我希望我的应用在开始之前先执行一些验证。因此,我希望 Kivy 应用程序从一个简单的“请稍候”屏幕开始,然后转到主屏幕。
请帮忙!
【问题讨论】:
这是一个简短的例子,说明如何从 python 代码更改屏幕
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
Builder.load_string("""
<Screen1>:
name: 'screen1'
Button:
on_press: root.on_click()
<Screen2>:
name: 'screen2'
Label:
text: "Cool!"
<MyScreenManager>:
Screen1:
Screen2:
""")
class Screen1(Screen):
def on_click(self):
sm.current = 'screen2'
class Screen2(Screen):
pass
class MyScreenManager(ScreenManager):
pass
class SimpleApp(App):
def build(self):
global sm
sm = MyScreenManager()
return sm
SimpleApp().run()
我已使用按钮 on_press 事件来调用 python 代码,但您可以在另一个线程中运行验证,完成后您可以使用 Clock api 回调 kivy 代码
【讨论】: