我有问题,我有这段代码:
for j in range(1,21):
if "Canales" in item.title:
self.btn = Button(text="Channel "+str(j), size=(590, 42),size_hint=(None, None), on_press=self.aces)
layout.add_widget(self.btn)
...
def aces(self, valor):
print self.btn.text
当我打印self.btn.text时,我没有得到按钮的文本,我总是得到j的最后一个值,"通道20" ...是一个Bug?只是我的无能??
提前致谢
答案 0 :(得分:1)
我不知道是否是最优雅的解决方案,但我已经用fbind解决了
self.btn = Button(text="Arenavision "+str(j), size=(590, 42),size_hint=(None, None))
self.btn.fbind('on_press', self.aces, str(j))
...
def aces(self, value,arg):
print value
答案 1 :(得分:1)
' self.btn'始终是最后创建的按钮,因为您在循环中分配它,修复它的部分更改是' aces'的新(正确)定义,而不是绑定部分。