Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 19adf82

Browse files
authored
add speed to imagewidget toolbar (#264)
1 parent 4a3a79e commit 19adf82

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

fastplotlib/widgets/image.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -945,7 +945,6 @@ def __init__(self, iw: ImageWidget):
945945
self.widget = HBox([self.reset_vminvmax_button])
946946
# for txy, tzxy, etc. data
947947
else:
948-
949948
self.step_size_setter = BoundedIntText(
950949
value=1,
951950
min=1,
@@ -956,6 +955,16 @@ def __init__(self, iw: ImageWidget):
956955
description_tooltip="set slider step",
957956
layout=Layout(width="150px"),
958957
)
958+
self.speed_text = BoundedIntText(
959+
value=100,
960+
min=1,
961+
max=1_000,
962+
step=50,
963+
description="Speed",
964+
disabled=False,
965+
description_tooltip="Playback speed, this is NOT framerate.\nArbitrary units between 1 - 1,000",
966+
layout=Layout(width="150px"),
967+
)
959968
self.play_button = Play(
960969
value=0,
961970
min=iw.sliders["t"].min,
@@ -964,20 +973,26 @@ def __init__(self, iw: ImageWidget):
964973
description="play/pause",
965974
disabled=False,
966975
)
967-
968976
self.widget = HBox(
969-
[self.reset_vminvmax_button, self.play_button, self.step_size_setter]
977+
[self.reset_vminvmax_button, self.play_button, self.step_size_setter, self.speed_text]
970978
)
971979

972-
self.step_size_setter.observe(self.change_stepsize, "value")
980+
self.play_button.interval = 10
981+
982+
self.step_size_setter.observe(self._change_stepsize, "value")
983+
self.speed_text.observe(self._change_framerate, "value")
973984
jslink((self.play_button, "value"), (self.iw.sliders["t"], "value"))
974985
jslink((self.play_button, "max"), (self.iw.sliders["t"], "max"))
975986

976-
self.reset_vminvmax_button.on_click(self.reset_vminvmax)
987+
self.reset_vminvmax_button.on_click(self._reset_vminvmax)
977988

978-
def reset_vminvmax(self, obj):
989+
def _reset_vminvmax(self, obj):
979990
if len(self.iw.vmin_vmax_sliders) != 0:
980991
self.iw.reset_vmin_vmax()
981992

982-
def change_stepsize(self, obj):
993+
def _change_stepsize(self, obj):
983994
self.iw.sliders["t"].step = self.step_size_setter.value
995+
996+
def _change_framerate(self, change):
997+
interval = int(1000 / change["new"])
998+
self.play_button.interval = interval

0 commit comments

Comments
 (0)