Note
Click here to download the full example code
Slider Bar Widget¶
The slider widget can be enabled and disabled by the
pyvista.WidgetHelper.add_slider_widget()
and
pyvista.WidgetHelper.clear_slider_widgets()
methods respectively.
This is one of the most versatile widgets as it can control a value that can
be used for just about anything.
# sphinx_gallery_thumbnail_number = 1
One helper method we’ve added is the
pyvista.WidgetHelper.add_mesh_threshold()
method which leverages the
slider widget to control a thresholding value.
import pyvista as pv
from pyvista import examples
mesh = examples.download_knee_full()
p = pv.Plotter()
p.add_mesh_threshold(mesh)
p.show()

Out:
[(417.3182207980985, 431.77821988257114, 442.48772305639926),
(74.83049774169922, 89.29049682617188, 100.0),
(0.0, 0.0, 1.0)]
After interacting with the scene, the threshold mesh is available as:
p.threshold_meshes
Out:
[UnstructuredGrid (0x7fccbe9629f0)
N Cells: 115425
N Points: 179772
X Bounds: 3.760e+01, 1.171e+02
Y Bounds: 1.446e+01, 1.338e+02
Z Bounds: 0.000e+00, 2.000e+02
N Arrays: 1
]
And here is a screen capture of a user interacting with this

Custom Callback¶
Or you could leverage a custom callback function that takes a single value
from the slider as its argument to do something like control the resolution
of a mesh. Again note the use of the name
argument in add_mesh
:
p = pv.Plotter()
def create_mesh(value):
res = int(value)
sphere = pv.Sphere(phi_resolution=res, theta_resolution=res)
p.add_mesh(sphere, name='sphere', show_edges=True)
return
p.add_slider_widget(create_mesh, [5, 100], title='Resolution')
p.show()

Out:
[(1.9312408826647358, 1.9312408826647358, 1.9312408826647358),
(0.0, 0.0, 0.0),
(0.0, 0.0, 1.0)]
And here is a screen capture of a user interacting with this

Total running time of the script: ( 0 minutes 2.467 seconds)