屏幕未显示小部件

时间:2020-07-10 10:24:26

标签: kivy kivy-language

我的主文件。请教我什么是我的错误,我使用screenmanager在两个屏幕之间导航, 我的程序有什么问题?在过去的两天里,这让我很恼火。在使用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天。抱歉,我的英语不好。

1 个答案:

答案 0 :(得分:0)

您的build()的{​​{1}}方法应该返回GUI的根目录,但是您的App方法将返回build()。尝试将其更改为:

None

由于您的class DemoApp(MDApp): def build(self): Builder.load_file("my.kv") self.theme_cls.theme_style='Dark' return WindowManager() 文件不包含根(kv中没有包含的规则),因此<>方法将返回load_file()