Kivy 没有正确获取 button.text 值

Posted

技术标签:

【中文标题】Kivy 没有正确获取 button.text 值【英文标题】:Kivy don't get the button.text value correctly 【发布时间】:2016-08-26 02:44:01 【问题描述】:

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

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 的最后一个值,“channel 20”......是错误吗?只是我无能吗?...

提前致谢

【问题讨论】:

【参考方案1】:

'self.btn' 始终是最后创建的按钮,因为您在循环中分配它,修复它的更改部分是 'aces' 的新(正确)定义,而不是绑定部分。

【讨论】:

【参考方案2】:

我不知道是否是最优雅的解决方案,但我已经用 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

【讨论】:

以上是关于Kivy 没有正确获取 button.text 值的主要内容,如果未能解决你的问题,请参考以下文章

Kivy:Switch从INI文件中读取值

为啥我没有在 kivy 中设置?

kivy 基础: widget, texture的使用

Kivy'对象没有属性'错误

打印 NumericProperty() kivy 的值

Kivy:单击按钮时如何更新标签