【问题标题】:kivy._event.EventDispatcher.__init__ is raising the error "TypeError: object.__init__() takes exactly one argument (the instance to initialize)"kivy._event.EventDispatcher.__init__ 引发错误“TypeError: object.__init__() 仅采用一个参数(要初始化的实例)”
【发布时间】:2021-09-15 07:09:24
【问题描述】:

我对编程比较陌生,大约 8 个月多一点,但我正在学习 kivy 和 python3,我正在尝试创建一个密码管理应用程序,我希望它在按钮打开时打开一个新屏幕按下。但我收到类型错误。

import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.uix.screenmanager import ScreenManager, Screen


class LoginScreen(Widget):
    pass

class PasswordScreen(Widget):
    pass

class PasswordApp(App):
    def build(self):
        sm = ScreenManager()
        sm.add_widget(LoginScreen(name='login'))
        sm.add_widget(PasswordScreen(name='passwords'))

        return sm

if __name__ == '__main__':
    PasswordApp().run()

这是 .kv 代码

<LoginScreen>:
    GridLayout:
        Button:
            text: 'Goto passwords'
            on_press: root.manager.current = 'passwords'
        Button:
            text: 'Quit'
<PasswordScreen>:
    GridLayout:
        Button:
            text: 'My settings button'
        Button:
            text: 'logout'
            on_press: root.manager.current = 'login'

【问题讨论】:

    标签: python python-3.x kivy


    【解决方案1】:

    您的LoginScreenPasswordScreen 扩展Widget,而Widget __init__() 不支持name 属性。这两个类都应该扩展 Screen 而不是 Widget

    【讨论】:

      猜你喜欢
      • 2020-01-25
      • 1970-01-01
      • 1970-01-01
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      • 2021-12-19
      • 2021-07-11
      • 2019-12-31
      相关资源
      最近更新 更多