我必须创建多个按钮(对于给定列表中的每个元素)。为此,我使用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)
您的
add()
方法正在使用self.i
,这将是在__init__()
方法(2
)中self.i
设置的最后一个值。因此,您只需要将add()
方法修改为如下内容:相关问题 更多 >
编程相关推荐