Python 对象。初始化不接受任何参数
因此,我目前正在制作一个应用程序,它有一个登录功能以及一个主窗口,其中有一个菜单功能。当我遇到错误时,我遇到了代码问题:Python 对象。初始化不接受任何参数,python,python-3.x,python-requests,kivy,kivy-language,Python,Python 3.x,Python Requests,Kivy,Kivy Language,因此,我目前正在制作一个应用程序,它有一个登录功能以及一个主窗口,其中有一个菜单功能。当我遇到错误时,我遇到了代码问题: 文件“C:\Users\Muna Abdullahi\AppData\Local\Programs\Python\Python37-32\lib\site packages\kivy\uix\widget.py”,第350行,在__ 超级(小部件,自我)。\uuuuu初始化(**kwargs) 文件“kivy\\u event.pyx”,第243行,在kivy.\u even
文件“C:\Users\Muna Abdullahi\AppData\Local\Programs\Python\Python37-32\lib\site packages\kivy\uix\widget.py”,第350行,在__
超级(小部件,自我)。\uuuuu初始化(**kwargs)
文件“kivy\\u event.pyx”,第243行,在kivy.\u event.EventDispatcher.\uu init中__
TypeError:object.\uuuuu init\uuuuuuu()不接受任何参数
这是我的代码:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import ObjectProperty
from kivy.uix.popup import Popup
from kivy.uix.label import Label
from kivy.core.window import Window
from database import DataBase
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.widget import Widget
from kivy.config import Config
Window.clearcolor = (0.5294, 0, 0.3176, 0)
Config.set('kivy', 'keyboard_mode', 'systemandmulti')
class ForgotWindow(Screen):
namee = ObjectProperty(None)
email = ObjectProperty(None)
def VerificationBtn(self):
pass
def loginBtn(self):
sm.current = "login"
class CreateAccountWindow(Screen):
namee = ObjectProperty(None)
email = ObjectProperty(None)
password = ObjectProperty(None)
def submit(self):
if self.namee.text != "" and self.email.text != "" and self.email.text.count("@") == 1 and self.email.text.count(".") > 0:
if self.password != "":
db.add_user(self.email.text, self.password.text, self.namee.text)
self.reset()
sm.current = "login"
else:
invalidForm()
else:
invalidForm()
def login(self):
self.reset()
sm.current = "login"
def reset(self):
self.email.text = ""
self.password.text = ""
self.namee.text = ""
def createBtn(self):
self.reset()
sm.current = "create"
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 forgot(self):
self.reset()
sm.current = "forgot"
def reset(self):
self.email.text = ""
self.password.text = ""
class MainWindow(BoxLayout):
pass
class Screen_One(Screen):
pass
class Screen_Two(Screen):
pass
class WindowManager(ScreenManager):
pass
def invalidLogin():
popup = Popup(title='Invalid Login',
content=Label(text='Invalid username or password.'),
size_hint=(None, None), size=(400, 400))
popup.open()
def invalidForm():
popup = Popup(title='Invalid Form',
content=Label(text='Please fill in all inputs with valid information.'),
size_hint=(None, None), size=(400, 400))
popup.open()
kv = Builder.load_file("my.kv")
sm = WindowManager()
db = DataBase("users.txt")
screens = [LoginWindow(name="login"),
CreateAccountWindow(name="create"),ForgotWindow(name="forgot"),
MainWindow(name="main"), Screen_One(name="Screen_One"),
Screen_Two(name="Screen_Two")]
for screen in screens:
sm.add_widget(screen)
sm.current = "login"
class MyMainApp(App):
def build(self):
return sm
if __name__ == "__main__":
MyMainApp().run() `
如果你也需要我的kivy文件,我可以把它寄过来
有人能帮我吗?我需要尽快修复代码,因为它是我学校项目的一部分。另外,如果有人能帮助我使用Kivy,那将非常感谢。您的
主窗口类扩展了BoxLayout
,但是BoxLayout
不支持名称属性。您只需从main窗口
创建中删除name
参数:
MainWindow(name="main")
应该是:
MainWindow()
请提供一个最小的工作示例!从错误文本可以很清楚地看出,\uuuu init\uuu
不需要参数。在这里发布之前,您是否尝试过调试自己的代码?您能否至少对导致问题的代码行进行注释?这可能是因为您正在传递name
关键字参数,但不存在此类参数名称。在这种情况下,您看到的错误正是python所期望的。请隔离导致问题的代码部分,而不仅仅是粘贴整个模块错误消息没有列出任何代码?