注釈
Go to the end to download the full example code.
チェックボックスウィジェット#
チェックボックスを使用して,シーン内のメッシュの表示/非表示を切り替えます.
詳細については, pyvista.Plotter.add_checkbox_button_widget()
を参照してください.
import pyvista as pv
単一チェックボックス#
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()

複数のチェックボックス#
この例では,一意のカラーを持つ多数のメッシュをシーンに追加し,同じカラーのメッシュに対応するチェックボックスを作成してシーン内での可視を切り替えます.
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)
# 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()

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