ich habe vor kurzem angefangen mich in Kivy einzuarbeiten und stecke nun fest...
Ich möchte mit mehreren Screens arbeiten. Klickt man im Programm auf einen Button, soll sich ein anderer Screen öffnen usw.
Am liebsten wäre es mir noch (der Übersichtlichkeit wegen) wenn man für jeden Screen eine eigene .kv-File hätte, aber das ist fürs erste nebensächlich.
Meine Frage nun: Wie verknüpfe ich die unterschiedlichen Screens mit unterschiedlichen Klassen?
Meine Python-File:
Code: Alles auswählen
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
class FirstWindow(Screen):
def printing(self):
print("Ich bin der erste Screen!")
class SecondWindow(Screen):
def printing(self):
print("Ich bin der zweite Screen!")
class WindowManager(ScreenManager):
pass
class MyApp(App):
def build(self):
return Builder.load_file("test.kv")
if __name__ == "__main__":
MyApp().run()
Code: Alles auswählen
WindowManager:
FirstWindow:
SecondWindow:
<FirstWindow>:
name: "first"
BoxLayout:
orientation: "vertical"
size: root.width, root.height
Label:
text: "First Screen"
font_size: 32
Button:
text: "Next Screen"
font_size: 32
on_release:
app.root.current = "second"
root.manager.transition.direction = "left"
#on_press: app.printing()
<SecondWindow>:
name: "second"
BoxLayout:
orientation: "vertical"
size: root.width, root.height
Label:
text: "Second Screen"
font_size: 32
Button:
text: "Go Back"
font_size: 32
on_release:
app.root.current = "first"
root.manager.transition.direction = "right"
#on_press: app.printing()
folgenden Fehler: AttributeError: 'MyApp' object has no attribute 'printing'
Logisch nehme ich mal an.. Wie verknüpf ich nun also die Screens zu ihren eigentlichen Klassen?
Habe schon allerlei Youtube-Tuts und Google-Beiträge durchgesucht...
Hoffe mir kann jemand weiterhelfen