.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "tutorial/08_widgets/b_checkbox-widget.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code or to run this example in your browser via Binder .. rst-class:: sphx-glr-example-title .. _sphx_glr_tutorial_08_widgets_b_checkbox-widget.py: .. _checkbox_widget_example: Checkbox Widget ~~~~~~~~~~~~~~~ Use a checkbox to turn on/off the visibility of meshes in a scene. See :func:`pyvista.Plotter.add_checkbox_button_widget` for more details. .. GENERATED FROM PYTHON SOURCE LINES 12-15 .. code-block:: Python import pyvista as pv .. GENERATED FROM PYTHON SOURCE LINES 17-19 Single Checkbox +++++++++++++++ .. GENERATED FROM PYTHON SOURCE LINES 19-33 .. code-block:: Python mesh = pv.Sphere() p = pv.Plotter() actor = p.add_mesh(mesh) def toggle_vis(flag): actor.SetVisibility(flag) p.add_checkbox_button_widget(toggle_vis, value=True) p.show() .. image-sg:: /tutorial/08_widgets/images/sphx_glr_b_checkbox-widget_001.png :alt: b checkbox widget :srcset: /tutorial/08_widgets/images/sphx_glr_b_checkbox-widget_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 34-37 And here is a screen capture of a user interacting with this .. image:: ../../images/gifs/single-checkbox-widget.gif .. GENERATED FROM PYTHON SOURCE LINES 39-45 Multiple Checkboxes +++++++++++++++++++ In this example, we will add many meshes to a scene with unique colors and create corresponding checkboxes for those meshes of the same color to toggle their visibility in the scene. .. GENERATED FROM PYTHON SOURCE LINES 45-65 .. code-block:: Python colors = [ ["ff0000", "28e5da", "0000ff"], ["ffff00", "c8bebe", "f79292"], ["fffff0", "f18c1d", "23dcaa"], ["d785ec", "9d5b13", "e4e0b1"], ["894509", "af45f5", "fff000"], ] class SetVisibilityCallback: """Helper callback to keep a reference to the actor being modified.""" def __init__(self, actor): self.actor = actor def __call__(self, state): self.actor.SetVisibility(state) .. GENERATED FROM PYTHON SOURCE LINES 66-92 .. code-block:: Python # Widget size size = 50 p = pv.Plotter() Startpos = 12 for i, lst in enumerate(colors): for j, color in enumerate(lst): actor = p.add_mesh(pv.Sphere(center=(i, j, 0)), color=color) # Make a separate callback for each widget callback = SetVisibilityCallback(actor) p.add_checkbox_button_widget( callback, value=True, position=(5.0, Startpos), size=size, border_size=1, color_on=color, color_off='grey', background_color='grey', ) Startpos = Startpos + size + (size // 10) p.show() .. image-sg:: /tutorial/08_widgets/images/sphx_glr_b_checkbox-widget_002.png :alt: b checkbox widget :srcset: /tutorial/08_widgets/images/sphx_glr_b_checkbox-widget_002.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 93-96 And here is a screen capture of a user interacting with this .. image:: ../../images/gifs/multiple-checkbox-widget.gif .. GENERATED FROM PYTHON SOURCE LINES 98-105 .. raw:: html
Open In Colab
.. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.726 seconds) .. _sphx_glr_download_tutorial_08_widgets_b_checkbox-widget.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: binder-badge .. image:: images/binder_badge_logo.svg :target: https://mybinder.org/v2/gh/pyvista/pyvista-tutorial/gh-pages?urlpath=lab/tree/notebooks/tutorial/08_widgets/b_checkbox-widget.ipynb :alt: Launch binder :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: b_checkbox-widget.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: b_checkbox-widget.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_