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

查看:256
本文介绍了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天全站免登陆