尝试使用kivy框架构建一个简单的计算器。
这是在我的main.py文件中
class Calculator(AnchorLayout):
inputs = ObjectProperty(None)
def backward(self, express):
if express:
self.display.text = express[:-1]
def show(self):
self.inputs.text = self.inputs.text + self.text
def calculate(self, express):
if not express: return
try:
self.display.text = str( eval(express) )
except Exception:
self.display.text = 'error'
class CalculatorApp(App):
def build(self):
return Calculator()
CalculatorApp().run()
并在我的kivy文件中而不是:
Button:
text: '9'
on_press: input_string.text += self.text
我想使用我在main.py
中定义的show函数Button:
text: '7'
on_press: root.show()
但我得到一个AttributeError:Calculator对象没有属性' text'
答案 0 :(得分:2)
你在Calculator
的show方法中有这一行:
self.inputs.text = self.inputs.text + self.text
这是指self.text,但您提供的代码从未为计算器设置此属性,因此您会收到给定的错误:Calculator object has no attribute 'text'