Python Kivy:如何检查按钮是否被点击?

我必须创建多个按钮(对于给定列表中的每个元素)。为此,我正在使用 for 循环。必须记录按下的按钮。但是,self.i 的值并未存储在该特定实例中,即最后一个值(在本例中 - 2 已存储,在循环完成后)。我该如何解决这个错误?有没有办法添加条件语句来检查按钮是否被单击,如果是,则将 self.i 的值存储在另一个变量中。


class InfoPage(GridLayout):

    def __init__(self, **kwargs):

        super(InfoPage, self).__init__(**kwargs)

        self.cols = 1

        self.peers = ["ishika", "nate", "nf"]

        for self.i in range(3):


            self.peers[self.i] = Button(text=peers[self.i], id=str(self.i))

            self.add_widget(self.peers[self.i])

            self.peers[self.i].bind(on_press=self.add)


    def add(self, _):

        id_of_button_pressed = self.peers[self.i].id

        print(id_of_button_pressed)


繁星点点滴滴
浏览 178回答 1
1回答

慕斯王

您的add()方法正在使用self.i,这将是在方法 ( )self.i中设置的最后一个值。所以你只需要将你的方法修改为:__init__()2add()def add(self, button):    id_of_button_pressed = button.id    print(id_of_button_pressed)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python