Trigger event on mouseup instead of continuosly with panel slider widget(鼠标向上触发事件,而不是使用面板滑块小工具连续触发事件)
本文介绍了鼠标向上触发事件,而不是使用面板滑块小工具连续触发事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
函数如何监视panel.widgets.IntSlider的值更改,但仅在释放鼠标时触发,而不是在滑块被四处拖动时连续触发?
我尝试了callback_policy='mouseup',并用@panel.depends(panel.widgets.IntSlider, watch=True)装饰了函数,但当滑块被拖动时,函数会继续执行,而不仅仅是在释放鼠标按键时。以下是完整代码:
import panel as pn
pn.extension()
int_slider = pn.widgets.IntSlider(
name='Integer Slider', end=5, callback_policy='mouseup')
@pn.depends(int_slider.param.value, watch=True)
def print_slider_value(slider_value):
return slider_value
pn.Column(int_slider, print_slider_value) #.app('localhost:8888')
我尝试了使用和不使用.app(),结果都是一样的,并且使用了‘Thttle’而不是‘MouseUp’。我正在JupyterLab笔记本中尝试此功能,并且已安装了PyViz扩展。
bokeh 1.2.0
panel 0.6.0
IPython 6.5.0
jupyter_client 5.2.3
jupyter_core 4.4.0
jupyterlab 1.0.2
notebook 5.6.0
推荐答案
我查看了panel的源代码,发现它没有定义value_throttled属性。
要解决这个问题,您需要创建一个继承自IntSlider的类,并添加value_throttled属性。
然后您可以在value_throttled上观看。
import panel as pn
import param
class IntThrottledSlider(pn.widgets.IntSlider):
value_throttled = param.Integer(default=0)
int_slider = IntThrottledSlider(
name='Integer Slider', end=5, callback_policy='mouseup')
@pn.depends(int_slider.param.value_throttled, watch=True)
def print_slider_value(slider_value):
return slider_value
pn.Column(int_slider, print_slider_value)
这篇关于鼠标向上触发事件,而不是使用面板滑块小工具连续触发事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:鼠标向上触发事件,而不是使用面板滑块小工具连续触发事件
基础教程推荐
猜你喜欢
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
