如何在Kivy-Labels中使用外部函数中的变量?

时间:2018-11-01 10:16:27

标签: python kivy

我是Python / Kivy初学者,我想在标签“ outputWindow”中得到a和b值的总和,有人可以帮我吗?谢谢!

class Example(App):

    def build(self):
        layout = BoxLayout(orientation='vertical')

        self.otputWindow = Label(text="...")

        self.aClick = Button(text="Calc >>")

        self.aClick.bind(on_press=self.first_number)
        self.aClick.bind(on_press=self.second_number)


        layout.add_widget(self.otputWindow)
        layout.add_widget(self.aClick)


        return layout



    def first_number(self, *args):
        a = 5

    def second_number(self, *args):
        b = 10


if __name__ == '__main__':
    Example().run()

1 个答案:

答案 0 :(得分:1)

我自己还没有使用过Kivy,我对python位有一个评论:

您在方法ab中使用的变量first_number()second_number()仅在这些方法的范围内定义。您可以分配self.a = 5,也可以让方法返回数字。仅编写a = 5便无法在您的方法之外的任何地方引用a

这是您的代码的一个建议(尽管它可能是不完整的,因为我不知道您要做什么)

class Example(App):

    def build(self):
        layout = BoxLayout(orientation='vertical')

        self.first_number()
        self.second_number()
        self.otputWindow = Label(text=str(self.a + self.b))

        self.aClick = Button(text="Calc >>")

        self.aClick.bind(on_press=self.first_number)
        self.aClick.bind(on_press=self.second_number)


        layout.add_widget(self.otputWindow)
        layout.add_widget(self.aClick)

        return layout

    def first_number(self, *args):
        self.a = 5

    def second_number(self, *args):
        self.b = 10

if __name__ == '__main__':
    Example().run()