【问题标题】:Can't bind a function to a button无法将功能绑定到按钮
【发布时间】:2017-10-09 16:05:21
【问题描述】:

我似乎无法将我的功能绑定到这个特定按钮。我试过这个:

这是我的功能:

def callback(str):
    print('he button <%s> is being pressed' % str)

这是我绑定函数的地方:

btn = Button(text="%s" % feedList[i]['message'])
btn.bind(on_press=callback(i))

【问题讨论】:

  • i 是一个字符串吗?因为callback() 需要一个字符串作为参数。
  • 否,但我尝试返回一个字符串,但它仍然无法运行,例如on_press=callback("你好世界")
  • 那么您应该给我们更多信息,尤其是您收到的错误消息以及我们可以运行和测试的代码。

标签: python python-3.x kivy kivy-language


【解决方案1】:

should绑定时传递函数名:

btn.bind(on_press=callback)

# ...

def callback(instance, value):
    print('My button <%s> state is <%s>' % (instance, value))

如果您想将i 也传递给回调您can use partial 函数:

from functools import partial

btn.bind(on_press=partial(callback, i))

# ...

def callback(i, instance, value):
    print('My button <%s> state is <%s>' % (instance, value))

【讨论】:

  • 我能再问你一个问题吗?
猜你喜欢
  • 2014-06-01
  • 2011-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多