python - 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
解决方案
在您的kv
文件中,ids
不应该是字符串。尝试改变:
id: "layout"
至:
id: layout
推荐阅读
- vbscript - FSO - 删除文件问题
- react-native - 何时使用 react-native 链接?
- sql-server - 具有自定义列和行分隔符的 BCP
- linux - Jupyter notebook SSH 隧道错误“无法打开签名数据库”
- python - Python,写csv单行多列
- python - 使用阈值图像改变实际图像中的亮度值
- rust - 如何使用 Serde 解析具有多种不同类型的 YAML 文件?
- html - 1fr 网格单元扩展超过 100%
- sql-server - 删除多边形外部的几何数据
- jquery - 克隆一个 HTML 块并将其附加到另一个 div