浏览代码

throttle ui.slider

Falko Schindler 2 年之前
父节点
当前提交
4b4ff500ff
共有 2 个文件被更改,包括 3 次插入3 次删除
  1. 2 2
      nicegui/elements/mixins/value_element.py
  2. 1 1
      nicegui/elements/slider.py

+ 2 - 2
nicegui/elements/mixins/value_element.py

@@ -9,7 +9,7 @@ class ValueElement(Element):
     VALUE_PROP = 'model-value'
     value = BindableProperty(on_change=lambda sender, value: sender.on_value_change(value))
 
-    def __init__(self, *, value: Any, on_value_change: Optional[Callable], **kwargs) -> None:
+    def __init__(self, *, value: Any, on_value_change: Optional[Callable], throttle: float = 0, **kwargs) -> None:
         super().__init__(**kwargs)
         self.set_value(value)
         self._props[self.VALUE_PROP] = self._value_to_model_value(value)
@@ -17,7 +17,7 @@ class ValueElement(Element):
 
         def handle_change(msg: Dict) -> None:
             self.set_value(self._msg_to_value(msg))
-        self.on(f'update:{self.VALUE_PROP}', handle_change, ['value'])
+        self.on(f'update:{self.VALUE_PROP}', handle_change, ['value'], throttle=throttle)
 
     def bind_value_to(self, target_object: Any, target_name: str = 'value', forward: Callable = lambda x: x):
         bind_to(self, 'value', target_object, target_name, forward)

+ 1 - 1
nicegui/elements/slider.py

@@ -19,7 +19,7 @@ class Slider(ValueElement):
         :param value: initial value to set position of the slider
         :param on_change: callback which is invoked when the user releases the slider
         """
-        super().__init__(tag='q-slider', value=value, on_value_change=on_change)
+        super().__init__(tag='q-slider', value=value, on_value_change=on_change, throttle=0.05)
         self._props['min'] = min
         self._props['max'] = max
         self._props['step'] = step