如何在kivylabel中使用外部函数的变量?

2024-10-03 23:21:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个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()

Tags: textselfaddnumberbindonexampledef
1条回答
网友
1楼 · 发布于 2024-10-03 23:21:17

我自己也没用过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()

相关问题 更多 >