我正在Kivy和KivyMD中为登录功能构建一个GUI。我的GUI可以很好地使用Kivy代码,但是当我将一个按钮更改为MDRaisedButton时,我得到了以下两个错误(完整的错误代码如下所示):
我很想知道是否有人能找出问题所在,并向我解释。谢谢您!在
我花了8个小时把整个应用程序从一个空白页面重新构建成一个新页面,在编辑之间运行代码,看看我是否能找出哪里出了问题。不幸的是,我想不出解决这个问题的办法。在
在框架设计.py在
class LoginWindow(Screen):
email = ObjectProperty(None)
password = ObjectProperty(None)
def loginBtn(self):
if db.validate(self.email.text, self.password.text):
MainWindow.current = self.email.text
self.reset()
sm.current = "main"
else:
invalidLogin()
def createBtn(self):
self.reset()
sm.current = "create"
def reset(self):
self.email.text = ""
self.password.text = ""
class WindowManager(ScreenManager):
pass
sm = WindowManager()
screens = [LoginWindow(name="login"), CreateAccountWindow(name="create"), MainWindow(name="main")]
for screen in screens:
sm.add_widget(screen)
sm.current = "login"
class FrameWork(App):
theme_cls = ThemeManager()
theme_cls.primary_palette = "DeepPurple"
title = "Frame Work"
def build(self):
return sm
设计千伏:
^{pr2}$ ^{3}$
问题的根本原因
问题是因为在实例化}。在
WindowManager
对象时,sm = WindowManager()
没有定义{解决方案
解决方案是在实例化
theme_cls = ThemeManager()
之后实例化WindowManager()
。在py文件
return sm
替换为return
WindowManager()`删除下面几行代码并在kv文件中实现
add_widget()
(又名instantiate children)Snippets-py文件
^{pr2}$kv文件
CreateAccountWindow
,和MainWindow
)作为类规则的子级,<WindowManager>:
代码片段-kv文件
示例
下面的示例是一个使用Kivy(屏幕管理器、屏幕、标签、弹出窗口、FloatLayout、GridLayout)和KivyMD(例如emanager、MDLabel、MDTextField、MDRaisedButton、MDRectangleFlatButton)的应用程序模型。在
在主.py在
输出
相关问题 更多 >
编程相关推荐