我的主文件。请教我什么是我的错误,我使用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天。抱歉,我的英语不好。
答案 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()
。