Я не уверен, почему я получаю NameError, когда мой код содержит то же имя? Вот код Я считаю, что weightValue должно перейти от onBtnPress к fcn (). Я что-то здесь упускаю?
Ошибка NameError: имя 'fcn' не определено
weightValue = ""
class keypad(App):
def onBtnPress(self, btn):
global weightValue
if btn.text == "Clear":
weightValue = weightValue[:-10]
elif btn.text == "Enter":
print("the value has be sent")
#send value to weight calculator
else:
weightValue = weightValue + btn.text
fcn(weightValue)
#send value to label
def fcn(self, weightValue):
print(weightValue)
def build(self):
layout = GridLayout(cols=2)
# , spacing=15, padding=15, row_default_height=40
# Make the background gray:
with layout.canvas.before:
Color(.2,.2,.2,1)
self.rect = Rectangle(size=(800,600), pos=layout.pos)
leftBox = GridLayout(cols=2)
lblweight = Label(text='Weight in pounds: ')
weightValuelbl = Label(text=weightValue)
leftBox.add_widget(lblweight)
leftBox.add_widget(weightValuelbl)
rightBox = GridLayout(cols=3)
_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, "Clear", 0, "Enter"]
for num in _list:
rightBox.add_widget(Button(text=str(num), on_release=self.onBtnPress))
layout.add_widget(leftBox)
layout.add_widget(rightBox)
return layout
if __name__ == '__main__':
keypad().run()