Da ich diese Woche noch frei habe, wollte ich mich gern solange mit Python Kivy beschäftigen und dazu lernen.
In meinem Code ist mein Ziel, den ersten Screen "FirstScreen" zu überspringen, wenn ich in einem Windows-System (und nicht im Android-System) bin.
Habe aber mit dem Umschalten über den ScreenManager auf den zweiten Screen "SecondScreen" Probleme.
main.py
Code: Alles auswählen
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.utils import platform
class FirstScreen(Screen):
def on_enter(self, *args):
if platform == "android":
pass
else:
print("Windows")
App.get_running_app().screen_manager.current = 'second_screen'
class SecondScreen(Screen):
pass
class TestApp(App):
def __init__(self, **kwargs):
super(TestApp, self).__init__(**kwargs)
self.screen_manager = ScreenManager()
def build(self):
Builder.load_file("main.kv")
self.screen_manager.add_widget(FirstScreen(name="first_screen"))
self.screen_manager.add_widget(SecondScreen(name="second_screen"))
return self.screen_manager
if __name__ == "__main__":
TestApp().run()
Code: Alles auswählen
<FirstScreen>:
BoxLayout:
orientation: 'vertical'
Label:
text: 'This is the First Screen'
Button:
text: 'Go to Second Screen'
on_press:
root.manager.transition.direction = 'left'
root.manager.current = 'second_screen'
<SecondScreen>:
BoxLayout:
orientation: 'vertical'
Label:
text: 'This is the Second Screen'
Button:
text: 'Go to First Screen'
on_press:
root.manager.transition.direction = 'right'
root.manager.current = 'first_screen'
Code: Alles auswählen
kivy.uix.screenmanager.ScreenManagerException: No Screen with name "second_screen".
Windows