首页 > 解决方案 > AttributeError:“超级”对象在 kivy .kv 文件中没有属性“__getattr__”

问题描述

仍然,这太烦人了,kv-kivy-this-that-error,UHH......无论如何我似乎没有得到 kivy,好吧,我仍然在. kv 文件并且烦人且缓慢地放弃了其“典型”响应

AttributeError: 'super' object has no attribute '__getattr__'

我感到目瞪口呆,这是什么,为什么是 KIVY-无论如何我必须提供一些东西来展示真正发生的事情 PYTHON

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.lang import Builder
from kivy.uix.textinput import TextInput
from kivy.uix.label import Label
Builder.load_file("my.kv")
class MyLayout(Widget,App):
    def __init__(self,*args,**kwargs):
        super(MyLayout, self).__init__(**kwargs)
    def clear(self):
        self.ids.n.text = ""
        self.ids.fp.text = ""
        self.ids.d.text = ""
    def writeD(self):
        name = self.ids.n.text
        pizza = self.ids.fp.text
        drinks = self.ids.d.text
        orders = open("order.txt","w")
        orders.write(f"Name: {name}\n")
        orders.write(f"Pizza: {pizza}\n")
        orders.write(f"Drinks: {drinks}")
    def read(self):
        orders = open("order.txt","r")
        orderL = orders.read()
        self.ids.layout.add_widget(Label(text=orderL))
class AwesomeApp(App):
   def build(self):
       return MyLayout()
if __name__ == '__main__':
    AwesomeApp().run()

是的,就像 - .kv

<Button>
    font_size:20
<TextInput>
    font_size:20
<Label>
    font_size:20
<MyLayout>
    BoxLayout:
        id: "layout"
        orientation:"vertical"
        size: root.width,root.height
        padding:10
        spacing:10
        Label:
            text:"Name"
        TextInput:
            id: n
            multiline:False
        Label:
            text:"Pizza"
        TextInput:
            id: fp
            multiline:False
        Label:
            text:"Drinks"
        TextInput:
            id: d
            multiline:False
        Button:
            text:"Submit"
            on_press:root.writeD()
        Button:
            text:"Clear fields"
            on_press:root.clear()
        Button:
            text:"show orders"
            on_press:root.read()

是的,再次出现属性错误,任何人都可以帮助。PYTHON

标签: pythonkivykivy-language

解决方案


在您的kv文件中,ids不应该是字符串。尝试改变:

id: "layout"

至:

id: layout

推荐阅读