如何在 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:
行
如何使用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:
行