【问题标题】:screen not showing widgets屏幕不显示小部件
【发布时间】:2020-07-10 21:34:52
【问题描述】:

我的主文件。请教我我的错误是什么,我使用屏幕管理器在两个屏幕之间导航, 我的程序有什么问题?过去 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'

输出只是渲染屏幕。不显示小部件。请帮我解决它 PLZ ..我在这里停留了 2 天。对不起,我的英语不好。

【问题讨论】:

    标签: kivy kivy-language


    【解决方案1】:

    Appbuild() 方法应该返回 GUI 的根目录,但您的 build() 方法返回 None。尝试将其更改为:

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

    由于您的 kv 文件不包含根(&lt;&gt; 中未包含的规则),load_file() 方法返回 None

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 2014-03-20
      相关资源
      最近更新 更多