экран не показывает виджеты - PullRequest
0 голосов
/ 10 июля 2020

мой основной файл. пожалуйста, научите меня, в чем моя ошибка, я использовал screenmanager для перехода между двумя экранами, в чем проблема в моей программе? это раздражает меня последние 2 дня. при использовании KIVY он работает, но при смешивании с kivymd и kivy он просто показывает черный экран без добавленных мной виджетов.

from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager,Screen




class login_window(Screen):
    pass


class create_acc_window(Screen):
    pass


class WindowManager(ScreenManager):
    pass

class DemoApp(MDApp):
    def build(self):
        self.root=Builder.load_file("my.kv")
        self.theme_cls.theme_style='Dark'


if __name__ =='__main__':
    DemoApp().run()
    enter code herefrom kivymd.app import MDApp
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager,Screen




class login_window(Screen):
    pass


class create_acc_window(Screen):
    pass


class WindowManager(ScreenManager):
    pass

class DemoApp(MDApp):
    def build(self):
        self.root=Builder.load_file("my.kv")
        self.theme_cls.theme_style='Dark'


if __name__ =='__main__':
    DemoApp().run()
    from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager,Screen




class login_window(Screen):
    pass


class create_acc_window(Screen):
    pass


class WindowManager(ScreenManager):
    pass

class DemoApp(MDApp):
    def build(self):
        self.root=Builder.load_file("my.kv")
        self.theme_cls.theme_style='Dark'


if __name__ =='__main__':
    DemoApp().run()

мой языковой файл kv

<WindowManager>:
    login_window:
    crate_acc_window:
    current: 'loginscreen'

<login_window>:
    name : 'loginscreen'
    MDFloatLayout:
        MDTextFieldRound:
            hint_text:'UserName'
            size_hint_x:None
            size:(180,0)
            pos_hint:{'center_x':0.5,'center_y':0.5}
            icon_left:'email'


        MDTextFieldRound:
            pos_hint:{'center_x':0.5,'center_y':0.4}
            hint_text:'Password'
            size_hint_x: None
            size: (180,0)
            icon_left:'key-variant'

        MDRoundFlatIconButton:
            text: 'Log in'
            pos_hint:{'center_x':0.5,'center_y':0.3}
            on_release: app.root.current='secondscreen'
<create_acc_window>:
    name: 'secondscreen'
    MDFloatLayout:
        MDTextField:
            mode:'rectangle'
            hint_text:'First Name'
            size_hint_x:None
            size:(150,0)
            pos_hint:{'left':0.4,'center_y':0.6}

        MDTextField:
            mode:'rectangle'
            hint_text:'Last Name'
            size_hint_x:None
            size:(150,0)
            pos_hint:{'right':0.4,'center_y':0.6}
        MDTextFieldRound:
            hint_text: 'Email'
            size_hint_x:None
            icon_left:'Email'
            size:(180,0)
            pos_hint:{'center_x':0.5,'center_y':0.5}
        MDTextFieldRound:
            hint_text: 'Password'
            size_hint_x:None
            size:(180,0)
            pos_hint:{'center_x':0.5,'center_y':0.5}
        MDTextFieldRound:
            hint_text: 'Renter-Password'
            size_hint_x:None
            size:(180,0)
            pos_hint:{'center_x':0.5,'center_y':0.4}
        MDRoundFlatIconButton:
            text: 'Create'
            on_release: app.root.current='loginscreen'

вывод просто экран рендеринга. не показывает виджет. плз помогите мне решить это плз .. я застрял здесь на 2 дня. извините за мой плохой engli sh.

1 Ответ

0 голосов
/ 10 июля 2020

Метод build() вашего App должен возвращать root вашего GUI, но ваш build() метод возвращает None. Попробуйте изменить его на:

class DemoApp(MDApp):
    def build(self):
        Builder.load_file("my.kv")
        self.theme_cls.theme_style='Dark'
        return WindowManager()

Поскольку ваш файл kv не содержит root (правило, не заключенное в <>), метод load_file() возвращает None.

...