如何在 KivyMD 中使用 Python 代码更改 KivyMD 按钮的 on_release 功能?

How can I change the on_release functionality of a KivyMD button using Python code in KivyMD?

如何使用Python代码更改KivyMD按钮的on_release功能?我最初在 KivyMD 按钮上添加了一个打印语句,我用 Python 代码更改了 KivyMD 按钮的 on_release 功能,但问题是,它将我的新功能加入按钮而不是替换其以前的功能.这意味着,它还会执行分配给按钮的先前功能,但我想完全更改功能,例如使用 Python 代码将其替换为新功能。

这是我的 Python 代码

self.root.ids.btn.on_release = self.new_function

提前致谢:)

如果您的初始 on_release 功能设置在 kv 中,那么我认为您无法删除或替换它。我相信解决方法是扩展 Button class 并在其 __init__() 方法中定义初始 on_release 函数。像这样:

class MyButt(Button):
    def __init__(self, **kwargs):
        self.on_release = partial(print, 'hi')
        return super(MyButt, self).__init__(**kwargs)

然后将 kv 中的 Button 替换为 MyButt,并从 kv.

中删除 on_release: