In letzter Zeit habe ich einige Probleme mit dem Kivy Screenmanager. Ich kann die switch_to
-Methode des Managers nicht verwenden, wenn ich von einer Klasse Screen
darauf zugreife. In einer Screen
Klasse gibt self.manager.switch_to
den Fehler: AttributeError: 'NoneType' object has no attribute 'switch_to'
. Ich bin ein bisschen verzweifelt. Unterhalb der einfachen App, die den Fehler erzeugt.Probleme mit Kivy ScreenManager
import kivy
kivy.require("1.9.1")
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.screenmanager import ScreenManager, Screen
screen1 = True
class Screen1(Screen):
def __init__(self, **kw):
super(Screen1, self).__init__(**kw)
self.add_widget(Label(text="Screen1"))
class Screen2(Screen):
def __init__(self, **kw):
super(Screen2, self).__init__(**kw)
self.add_widget(Label(text="Screen2"))
class BlackMenu(Screen):
def __init__(self, **kw):
super(BlackMenu, self).__init__(**kw)
if screen1:
self.manager.switch_to(Screen1())
class MyApp(App):
def build(self):
mymanager = ScreenManager()
mymanager.switch_to(BlackMenu(name="black"))
return mymanager
if __name__ == "__main__":
MyApp().run()
ich denke, das Problem liegt in BlackMenu, weil während der Konstruktion das Instanz-Manager-Attribut None ist. – fins