如何解决为什么在Kivy中显示KeyError:'name'?
from kivymd.app import MDApp
from kivy.lang import Builder
from kivymd.uix.dialog import MDDialog
from kivy.core.window import Window
from kivy.uix.screenmanager import ScreenManager,Screen
Window.size = (400,600)
class Log_in(MDApp,Screen):
def dop(self):
username = self.id_v.user.text
password = self.id_v.passw.text
if username == "MD" and password == "kivy":
Main().run()
else:
dial = MDDialog(text='Opps Wrong!',background_color=(0.3,1,0.3))
dial.open()
Window.keyboard_anim_args = {'d': .2,'t': 'in_out_expo'}
Window.softinput_mode = "below_target"
以上代码为登录功能
class Main(MDApp,Screen):
pass
我刚刚在Main类中增加了更多功能,例如对话框。
class WindowManager(ScreenManager):
pass
kv=Builder.load_file("Wolf.kv")
class Wolf(MDApp):
def build(self):
return kv
if __name__=="_main_":
Wolf().run()
这是我的Wolf.kv文件
WindowManager:
Log_in:
Main:
<Log_in>:
name:"log"
user:user
passw:passw
FloatLayout:
orientation:"vertical"
canvas.before:
Color:
rgba:(43/255,41/255,68/255,0.7)
Rectangle:
size:self.size
pos:self.pos
MDTextField:
id: user
hint_text : "Enter your Name"
helper_text : "Have u forget it?"
helper_text_mode : "on_focus"
icon_right : "android"
icon_right_color : app.theme_cls.primary_color
size_hint_x :None
width : '300'
pos_hint:{'center_x':0.5,'center_y':0.6}
multiline : False
foreground_color:0,1
MDTextField:
id: passw
hint_text : "Enter your Password"
helper_text : "Got it?"
helper_text_mode : "on_focus"
icon_right : "key"
icon_right_color : app.theme_cls.primary_color
size_hint_x :None
width : '300'
pos_hint:{'center_x':0.5,'center_y':0.5}
multiline : False
password:True
MDRectangleFlatButton:
id:btn
text:"Log in"
pos_hint:{'center_x': 0.5,'center_y': 0.4}
on_press:root.dop()
<Main>:
name:"main"
Button:
text:'hi'
正如我前面提到的,我在Main class中添加了很多东西。
请不要介意这些缩进错误。 我已经尝试了很多,但是没有用。关于屏幕管理是否有错误? 谢谢:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。