Kivy没有正确获取button.text值

时间:2016-05-01 06:23:12

标签: python loops button kivy

我有问题,我有这段代码:

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?只是我的无能??

提前致谢

2 个答案:

答案 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'的新(正确)定义,而不是绑定部分。