python - 如何将参数传递给 kivy 按钮的绑定函数
问题描述
实际上,我试图向我的 kivy 按钮的绑定方法添加一个参数,这就像def on_release_func(self,instance,something)
某些东西引用任何参数一样。现在在按钮的绑定函数MDRectangleFlatButton.bind(on_release = self.on_release_func(my_parameter))
中给了我错误on_release_func() missing one required positional argument 'something'
。我尝试使用 lambda 函数,但是当我单击 Button 时,它再次出现错误lambda takes zero positional argument but one was given
。我使用 lambda 之类的MDRectangleFlatButton.bind(on_release = lambda : self.on_release_func(my_parameter))
知道如何解决我的问题
示例代码
class Myapplin(MDApp):
def any_function(self):
self.card_imgs_box = BoxLayout()
self.img_disp_btn = MDFillRoundFlatButton(text='Img 1')
id_btn = int(self.img_disp_btn.text[-1]) - 1
self.img_disp_btn.bind(on_release=lambda: self.display_btn_img(id_btn))
self.card_imgs_box.add_widget(self.img_disp_btn)
def display_btn_img(self,instance,id):
return id*id
def build(self):
return something()
Myapplin().run()
这里的函数在 MDApp 类中。这个函数 any_function 被某个类中的某个其他小部件使用
解决方案
您传递给的函数on_release
将释放的实例作为其第一个(也是唯一的显式)参数传递。
因此,如果您有一个如您所描述的那样声明的函数def on_release_func(self,instance,something)
,则应将其绑定为.bind(on_release=lambda instance: self.on_release_func(instance, your_parameter))
.
推荐阅读
- scala - 如何在 gatling 中修改 csv 提要文件
- go - 如何打印传递给 go 程序的所有标志?
- asp.net-core - 如何在 .NET Core Razor 页面的级联下拉列表中重置值
- azure-data-factory-2 - 无法连接到 Azure 数据工厂上的 Salesforce
- javascript - How to fit map to full screen?
- cordova - 从 Cordova InAppBrowser Vue 应用程序下载文件
- rabbitmq - RabbitMQ中根据消息体属性选择性消费消息
- maven - mvn 站点因依赖解析而失败
- haskell - 在 Haskell 广度优先中构建二叉树(不是 BST)
- pygame - Pygame 错误:TypeError:projectile() 需要 1 个位置参数,但在 Pygame 中给出了 5 个