ich hätte da mal ein Problem.
Ich habe mit Kivy einen Login gestaltet und möchte nun, dass nach einer erfolgreichen Authentifizierung der "innere Bereich" angezeigt wird. Das möchte ich mit dem Screenmanager realisieren.
Code: Alles auswählen
WindowManager:
LoginWindow:
GameWindow:
Code: Alles auswählen
RoundedButton:
text: "Login"
pos_hint: {'center_x': .5}
size_hint: (1, None)
height: 50
on_press: app.root.press()
Code: Alles auswählen
class MyLayout(Widget):
name = ObjectProperty(None)
password = ObjectProperty(None)
def press(self):
user_hash = hashlib.sha256(self.name.text.encode('utf-8')).hexdigest().upper()
pass_hash = hashlib.sha256(self.password.text.encode('utf-8')).hexdigest().upper()
if (user_hash == super_user) and (pass_hash == super_pass):
print("Das hat geklappt!")
WindowManager.current = 'GameWindow'
else:
print("Du kummst hier net rein!")
Ich bekomme folgende Fehlermeldung:
Ich meine, klar ... die Methode ist in der Klasse MyLayout und nicht etwa in ...AttributeError: 'WindowManager' object has no attribute 'press'
Code: Alles auswählen
# Define screens
class LoginWindow(Screen):
pass
class GameWindow(Screen):
pass
class WindowManager(ScreenManager):
pass
Code: Alles auswählen
on_press: app.root.press()
Offenbar habe ich mal wieder ein grundsätzliches Verständnisproblem, wie das alles mit einander interagiert und vor allem, wie es das nicht tut.
Könnte jemand bitte ein Stichwort in den Raum werfen?
Liebe Grüße