Kivy计算器应用程序

0 投票
1 回答
1977 浏览
提问于 2025-04-18 09:01

我正在尝试用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'这个属性。

1 个回答

2

Calculator的显示方法里,你有这么一行代码:

self.inputs.text = self.inputs.text + self.text

这里提到的“self.text”是指这个计算器的文本,但你提供的代码里从来没有给这个计算器设置过这个属性,所以你会遇到这个错误:Calculator object has no attribute 'text',意思是计算器对象没有'text'这个属性。

撰写回答