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

2024-09-28 05:21:59 发布

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

我必须创建多个按钮(对于给定列表中的每个元素)。为此,我使用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)

Tags: ofselfaddid元素列表forinit
1条回答
网友
1楼 · 发布于 2024-09-28 05:21:59

您的add()方法正在使用self.i,这将是在__init__()方法(2)中self.i设置的最后一个值。因此,您只需要将add()方法修改为如下内容:

def add(self, button):
    id_of_button_pressed = button.id
    print(id_of_button_pressed)

相关问题 更多 >

    热门问题