При использовании менеджера экранов kivy одновременно с kivyMD появляется пустой экран - PullRequest
0 голосов
/ 28 апреля 2020

Я делаю страницу входа в систему в kivy и использую компоненты kivyMD, работая, я хочу изменить экран страницы входа, когда пользователь нажимает кнопку «регистрация», чтобы перейти к экрану регистрации. Для этого я использую менеджер экрана kivy, но он не работает должным образом. Первоначально я написал свой код в нормальных kivy и использовал тот же лог c для менеджера экрана, и он работал нормально. Пожалуйста, помогите мне в этом.

Это мой файл main.py

from kivy.lang import Builder
from kivy.uix.screenmanager import *
from kivymd.uix.label import MDLabel
from kivymd.font_definitions import theme_font_styles
from kivymd.app import MDApp
kv=Builder.load_file('Login.kv')

class loginwindow(Screen):
    pass
class signupwindow(Screen):
    pass    
class MyScreenManager(ScreenManager):
    pass
#sm=ScreenManager()
#sm.add_widget(loginwindow(name='login'))
#sm.add_widget(signupwindow(name='signup'))

class Test(MDApp):



    def build(self):

        self.theme_cls.theme_style = "Dark"  
        screen = Screen()
        return kv



Test().run()

И это мой файл Login.kv

#: import ScreenManager kivy.uix.screenmanager.ScreenManager
#: import Screen kivy.uix.screenmanager.ScreenManager

<MyScreenManager>:
    id: sm
    loginwindow:
    signupwindow:
<loginwindow>:
    name: 'login'
    FloatLayout:
      MDTextField:
          id: username
          hint_text: "Enter Username"
           pos_hint: {'center_x': 0.5, 'center_y': 0.6}
          size_hint:(0.50, 0.10)
           color_mode: 'primary'


     MDTextField:
          id: password
          hint_text: "Enter Password"
          password:True
            pos_hint: {'center_x': 0.5, 'center_y': 0.5}
           size_hint:(0.50, 0.10)


      DefaultLabel:
          text: 'Scheduler'
          font_size: '50sp'
            pos_hint: {'center_y': 0.8}
         font_name: 'Product Sans Bold.ttf'


        MDRoundFlatButton:
           size_hint: (0.2,0.0675)
           font_size: '20sp'
            text: "Login"
         pos_hint:{'center_x':0.38,'center_y':0.37}


      MDFillRoundFlatButton:
         size_hint: (0.2,0.0675)
          font_size: '20sp'
         text: "Sign Up"
            pos_hint:{'center_x':0.62,'center_y':0.37}
          on_release:
                app.root.current = "signup"


<signupwindow>:
    name: 'signup'

    FloatLayout:
        DefaultLabel:
            text: 'Welcome to Scheduler!!'
            font_size: 60
            pos_hint: {'center_y': 0.85}
            font_name: 'Product Sans Bold.ttf'


        DefaultLabel:
            text: 'In order to use our application, please fill the following details:-'
            font_size: 20
            pos_hint: {'center_y': 0.75}


      DefaultInput:
            id: username
          hint_text: "Enter Full Name"
         pos_hint: {'center_x': 0.5, 'center_y': 0.65}


        DefaultInput:
            id: email
            hint_text: 'Enter Email ID'
            pos_hint: {'center_x': 0.5, 'center_y': 0.55}


     DefaultInput:
            id: confirm_email
            hint_text: 'Confirm Email ID'
        pos_hint: {'center_x': 0.5, 'center_y': 0.45}


     DefaultInput:
            id: password
         hint_text: "Enter Password"
           password:True
            pos_hint: {'center_x': 0.5, 'center_y': 0.35}


     DefaultInput:
           id: confirm_pass
            hint_text: "Confirm Password"
           password:True
          pos_hint: {'center_x': 0.5, 'center_y': 0.25}


        MDRoundFlatButton:
          size_hint: (0.2,0.0675)
         font_size: '20sp'
          text: "Go Back"
           pos_hint:{'center_x':0.38,'center_y':0.15}


     MDFillRoundFlatButton:
            size_hint: (0.2,0.0675)
           font_size: '20sp'
            text: "Confirm"
          pos_hint:{'center_x':0.62,'center_y':0.15}



<DefaultLabel@MDLabel>:
    theme_text_color: 'Primary'
    halign: 'center'
    font_name: 'Product Sans Regular.ttf'

<DefaultInput@MDTextField>:
    size_hint:(0.50, 0.10)

Я что-то не так делаю ?

Я также ссылался на KivyMD Screen Manager, не могу работать , но он также не работает

Ошибки, которые я получаю, в основном включают: 1.nothing появляется во время выполнения кода 2. 'Необходимо определить объект приложения'

1 Ответ

0 голосов
/ 28 апреля 2020
<signupwindow>:
    name: 'signup'

Обратите внимание, что все буквы в нижнем регистре, но когда вы пытаетесь изменить экран

app.root.current = "SignUp"

Вы написали заглавными буквами 'S' и 'U'

Имена переменных / экранов чувствительны к регистру, поэтому вы должны быть осторожны с ними

...