Widgets¶
ipywidgets provides a large library of user interface controls. These can allow users to interact with NiiVue.
In [1]:
import ipywidgets
from ipyniivue import NiiVue, SliceType, WidgetObserver
volumes = [
{
"path": "../images/mni152.nii.gz",
"colormap": "gray",
"visible": True,
"opacity": 1.0,
},
{
"path": "../images/hippo.nii.gz",
"colormap": "red",
"visible": True,
"opacity": 1.0,
},
]
nv = NiiVue(
slice_type=SliceType.MULTIPLANAR,
back_color=(0.3, 0.3, 0.5, 1)
)
nv.load_volumes(volumes)
widgetArray = []
initial_mosaic = ("L A -16 0 16 32 S -24")
mosaic_text = {
"widget": ipywidgets.Text(
description="Mosaic ",
value=initial_mosaic,
),
"obj": nv.opts,
"attribute": "slice_mosaic_string",
}
widgetArray.append(mosaic_text)
cornet_text_button = {
"widget": ipywidgets.ToggleButton(
description="Corner Text",
value=False,
button_style='',
icon=''
),
"obj": nv.opts,
"attribute": "is_corner_orientation_text", # this will be set to True/False
}
widgetArray.append(cornet_text_button)
widget_dark_check = {
"widget": ipywidgets.Checkbox(
value=False,
description="Clip Dark",
),
"obj": nv.opts,
"attribute": "is_alpha_clip_dark",
}
widgetArray.append(widget_dark_check)
widget_back_opacity = {
"widget": ipywidgets.RadioButtons(
options=[
("Transparent", 0),
("Translucent", 0.5),
("Opaque", 1),
],
value=1,
description="Scan Opacity:",
),
"obj": nv.volumes[0],
"attribute": "opacity",
}
widgetArray.append(widget_back_opacity)
widget_hippo_opacity = {
"widget": ipywidgets.FloatSlider(
value=1.0,
min=0.0,
max=1.0,
step=0.1,
description="Hippocampus Opacity:",
orientation="horizontal",
style={"description_width": "initial"},
),
"obj": nv.volumes[1],
"attribute": "opacity",
}
widgetArray.append(widget_hippo_opacity)
widget_scan_colormap = {
"widget": ipywidgets.Select(
options=["Gray", "Red", "Blue", "Green"],
value="Gray",
description="Scan Colormap:",
style={"description_width": "initial"},
),
"obj": nv.volumes[0],
"attribute": "colormap",
}
widgetArray.append(widget_scan_colormap)
widget_hippo_colormap = {
"widget": ipywidgets.Dropdown(
options=["Red", "Blue", "Green", "Gray"],
value="Red",
description="Hippocampus Colormap:",
style={"description_width": "initial"},
),
"obj": nv.volumes[1],
"attribute": "colormap",
}
widgetArray.append(widget_hippo_colormap)
for widget in widgetArray:
WidgetObserver(**widget)
for widget in widgetArray:
display(widget["widget"])
nv
/home/runner/work/ipyniivue/ipyniivue/src/ipyniivue/widget.py:1327: UserWarning: Ignored unsupported kwargs in Volume: ['visible'] volume_objects.append(Volume(**item))
Out[1]:
In [ ]:
In [ ]: