Kivy 滑块事件 on_release [英] Kivy slider event on_release

查看:31
本文介绍了Kivy 滑块事件 on_release的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对 Kivy 很陌生,我正在尝试使用 Slider 小部件.我不希望在 on_value 上执行函数,而是在释放滑块后立即执行.如何在 Slider 类中实现类似 on_release(Buttons 存在)之类的东西?

I'm pretty new to Kivy and I'm trying to use the Slider widget. I don't want a function to be executed on_value but rather as soon as the slider is released. How can I implement something like on_release (which exists for Buttons) in the Slider class?

即而不是

Slider:
    on_value: root.do_something()

我想拥有

Slider:
    on_release: root.do_something()

推荐答案

我认为没有内置事件,所以你需要重写 on_touch_up.像下面这样的东西应该可以工作:

I don't think there's a built in event for this, so you'd need to override on_touch_up. Something like the following should work:

def on_touch_up(self, touch):
    released = super(YourSliderSubclass, self).on_touch_up(touch)
    if released:
        do_something()
    return released

这是因为它的 on_touch_up 如果实际被释放则默认返回 True,否则返回 None.

This works because its on_touch_up returns True by default if it was actually released, otherwise it returns None.

如果您想在 kv 中绑定一个事件,您可以将自己的新事件添加到您的滑块子类并调度它.

If you want an event to bind to in kv, you could add your own new event to your slider subclass and dispatch that.

这篇关于Kivy 滑块事件 on_release的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆