Dokonywanie strony logowania i rejestracji aplikacji za pomocą Kivy, ale kiedy uruchomię program zarówno ekrany łączą się ze sobą. Proszę pomóż mi. To jest mój kod Pythona: -

from kivy.app import App
from kivy.lang import Builder
from kivy.core.text import LabelBase
from kivy.uix.screenmanager import ScreenManager, Screen

Builder.load_file('design.kv')

LabelBase.register(name= "oswald",
fn_regular= "oswald/Oswald-Regular.ttf")


class LoginScreen(Screen):
    def sign_up(self):
        self.manager.current = "signup_screen"

class SignupScreen(Screen):
    pass

class RootWidget(Screen):
    pass

class MainApp(App):
    def build(self):
        return RootWidget()

if __name__ == "__main__":
    MainApp().run()

To jest mój kod Kivy: -

<LoginScreen>:
    GridLayout:
        cols: 1
        GridLayout:
            cols: 1
            Label: 
                text: "User Login"
            TextInput:
                hint_text: "Username"
            TextInput:
                hint_text: "Password"
            Button:
                text: "Login"
        GridLayout:
            cols: 2
            Button:
                text: "Forgot Password?"
            Button: 
                text: "Signup here"
                on_press: root.sign_up()


<SignupScreen>:
    GridLayout:
        cols:1
        Label:
            text: "Signup for lots of fun!!!"
        TextInput:
            hint_text: "Username"
        TextInput:
            hint_text: "Password"
        Button:
            text: "Signup"

<RootWidget>:
    LoginScreen:
        name: "login_screen"
    SignupScreen:
        name: "signup_screen"

W ten sposób powinien wyglądać: -

Strona logowania

Strona zarejestruj

Ale to jest strona błędu: -

Strona błędu.

Proszę pomóż mi.

0
Aryan Basle 3 sierpień 2020, 08:25

1 odpowiedź

Najlepsza odpowiedź

Spróbuj zmienić:

class RootWidget(Screen):
    pass

Do:

class RootWidget(ScreenManager):
    pass

Dodasz Screens do Screen, kiedy wierzę, że chcesz dodać je do ScreenManager.

0
John Anderson 3 sierpień 2020, 13:44